introduction to web technologies for effective ... · introduction to web technologies for...

133
Introduction to Web Technologies for Effective Dissemination of Information 13 November 2000 SIGAda 2000 Mr. Currie Colket SIGAda Vice Chair for Meetings and Conferences Phone: (703) 883-7381; Email: [email protected] | [email protected] Dr. John McCormick SIGAda Secretary Phone: (319) 273-2618; Email: [email protected] | [email protected] Mr. David A. Wheeler Institute for Defense Analyses Phone: (703) 845-6662; Email: [email protected] | [email protected] Mr. Clyde Roby Institute for Defense Analyses Phone: (703) 845-6666; Email: [email protected] SIGAda Home Page ˝ http://www.acm.org/sigada

Upload: others

Post on 11-Aug-2020

7 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: Introduction to Web Technologies for Effective ... · Introduction to Web Technologies for Effective Dissemination of Information 13 November 2000 SIGAda 2000 Mr. Currie Colket SIGAda

Introduction to Web Technologies for Effective Dissemination

of Information

13 November 2000SIGAda 2000

Mr. Currie ColketSIGAda Vice Chair for Meetings and Conferences

Phone: (703) 883-7381; Email: [email protected] | [email protected]

Dr. John McCormickSIGAda Secretary

Phone: (319) 273-2618; Email: [email protected] | [email protected]

Mr. David A. WheelerInstitute for Defense Analyses

Phone: (703) 845-6662; Email: [email protected] | [email protected]

Mr. Clyde RobyInstitute for Defense Analyses

Phone: (703) 845-6666; Email: [email protected]

SIGAda Home Page Íhttp://www.acm.org/sigada

Page 2: Introduction to Web Technologies for Effective ... · Introduction to Web Technologies for Effective Dissemination of Information 13 November 2000 SIGAda 2000 Mr. Currie Colket SIGAda

13 November 2000 SIGAda WWW 2

© Currie Colket, Brad Balfour, John McCormick, Clyde Roby, & David Wheeler for ACM SIGAda

Motivation

This tutorial is designed for the SIGAda volunteer interested in using WWW technologies to promote Local activities and Working Group activities. At the end of this tutorial, you will be able to:

• Use simple web-authoring tools• Develop your own Home Page• Tailor it to effectively communicate to your audience• Establish Home Page on ACM host• Use simple web-posting tools• Use simple web-verification tools• Establish maillists for your activity

Page 3: Introduction to Web Technologies for Effective ... · Introduction to Web Technologies for Effective Dissemination of Information 13 November 2000 SIGAda 2000 Mr. Currie Colket SIGAda

13 November 2000 SIGAda WWW 3

© Currie Colket, Brad Balfour, John McCormick, Clyde Roby, & David Wheeler for ACM SIGAda

Overview• Introduction to WWW and SIGAda Home Page as Notional Example

(John McCormick ~ 20 minutes)

• Introduction to HTML and use of Netscape Composer (Currie Colket ~ 90 minutes)

• Effective Design Strategies Appropriate to Disseminating Information(Clyde Roby ~ 30 minutes)

• Tools to Manage Development of Web Pages(Clyde Roby ~ 40 minutes)

• Introduction to Ada CGI (David A. Wheeler ~ 90 minutes)

• Using ACM WWW and Maillist Facilities (John McCormick ~ 60 minutes)

• Introduction to XML (Currie Colket ~ 30 minutes)

Start: 8:30Break: 10:00Lunch: 12:00Back: 1:30Break: 3:00End: 5:00

Page 4: Introduction to Web Technologies for Effective ... · Introduction to Web Technologies for Effective Dissemination of Information 13 November 2000 SIGAda 2000 Mr. Currie Colket SIGAda

13 November 2000 SIGAda WWW 4

© Currie Colket, Brad Balfour, John McCormick, Clyde Roby, & David Wheeler for ACM SIGAda

Introduction to SIGAda Home Pageas Notional Example

John McCormickSIGAda Secretary

Page 5: Introduction to Web Technologies for Effective ... · Introduction to Web Technologies for Effective Dissemination of Information 13 November 2000 SIGAda 2000 Mr. Currie Colket SIGAda

13 November 2000 SIGAda WWW 5

© Currie Colket, Brad Balfour, John McCormick, Clyde Roby, & David Wheeler for ACM SIGAda

SIGAda Home Page - 1

Page 6: Introduction to Web Technologies for Effective ... · Introduction to Web Technologies for Effective Dissemination of Information 13 November 2000 SIGAda 2000 Mr. Currie Colket SIGAda

13 November 2000 SIGAda WWW 6

© Currie Colket, Brad Balfour, John McCormick, Clyde Roby, & David Wheeler for ACM SIGAda

SIGAda Home Page - 2

Page 7: Introduction to Web Technologies for Effective ... · Introduction to Web Technologies for Effective Dissemination of Information 13 November 2000 SIGAda 2000 Mr. Currie Colket SIGAda

13 November 2000 SIGAda WWW 7

© Currie Colket, Brad Balfour, John McCormick, Clyde Roby, & David Wheeler for ACM SIGAda

SIGAda Home Page - 3

Page 8: Introduction to Web Technologies for Effective ... · Introduction to Web Technologies for Effective Dissemination of Information 13 November 2000 SIGAda 2000 Mr. Currie Colket SIGAda

13 November 2000 SIGAda WWW 8

© Currie Colket, Brad Balfour, John McCormick, Clyde Roby, & David Wheeler for ACM SIGAda

SIGAda Home Page - 4

Page 9: Introduction to Web Technologies for Effective ... · Introduction to Web Technologies for Effective Dissemination of Information 13 November 2000 SIGAda 2000 Mr. Currie Colket SIGAda

13 November 2000 SIGAda WWW 9

© Currie Colket, Brad Balfour, John McCormick, Clyde Roby, & David Wheeler for ACM SIGAda

SIGAda Home Page - 5

Page 10: Introduction to Web Technologies for Effective ... · Introduction to Web Technologies for Effective Dissemination of Information 13 November 2000 SIGAda 2000 Mr. Currie Colket SIGAda

13 November 2000 SIGAda WWW 10

© Currie Colket, Brad Balfour, John McCormick, Clyde Roby, & David Wheeler for ACM SIGAda

SIGAda Home Page - 6

Page 11: Introduction to Web Technologies for Effective ... · Introduction to Web Technologies for Effective Dissemination of Information 13 November 2000 SIGAda 2000 Mr. Currie Colket SIGAda

13 November 2000 SIGAda WWW 11

© Currie Colket, Brad Balfour, John McCormick, Clyde Roby, & David Wheeler for ACM SIGAda

SIGAda Home Page - 7

Page 12: Introduction to Web Technologies for Effective ... · Introduction to Web Technologies for Effective Dissemination of Information 13 November 2000 SIGAda 2000 Mr. Currie Colket SIGAda

13 November 2000 SIGAda WWW 12

© Currie Colket, Brad Balfour, John McCormick, Clyde Roby, & David Wheeler for ACM SIGAda

Introduction to HTML and use of Netscape Composer

Currie ColketMITRE

SIGAda Vice Chair for

Meetings and Conferences

Page 13: Introduction to Web Technologies for Effective ... · Introduction to Web Technologies for Effective Dissemination of Information 13 November 2000 SIGAda 2000 Mr. Currie Colket SIGAda

13 November 2000 SIGAda WWW 13

© Currie Colket, Brad Balfour, John McCormick, Clyde Roby, & David Wheeler for ACM SIGAda

Introduction to HTML• HTML Basics• Fonts; Colors; Bold; Italics• Creating Lists• Creating Links to URLs• Creating Anchors/Targets• Creating Relative Links• Creating Mailto Links• Incorporating Images• Putting Code On-line• Forms • Using the HTML <Head>• Netscape Composer (a WYSIWYG)• Creating Tables

Page 14: Introduction to Web Technologies for Effective ... · Introduction to Web Technologies for Effective Dissemination of Information 13 November 2000 SIGAda 2000 Mr. Currie Colket SIGAda

13 November 2000 SIGAda WWW 14

© Currie Colket, Brad Balfour, John McCormick, Clyde Roby, & David Wheeler for ACM SIGAda

Motivation for Knowing HTMLMany WYSIWYG Tools- Why Learn HTML?

• Output of tools is not always portable• Some use advanced features of HTML• Some use non-standard extensions of HTML• Some tools generate XML instead of HTML

• Browsers typically omit information not understood• Many browsers can’t handle XML• Tools can not always support desired goals• Occasionally cleanup of HTML code is required

• Porting from one tool to another• Eliminate garbage automatically generated

• Strengthens understanding of WWW capabilities• Understanding HTML is good foundation for XML

Page 15: Introduction to Web Technologies for Effective ... · Introduction to Web Technologies for Effective Dissemination of Information 13 November 2000 SIGAda 2000 Mr. Currie Colket SIGAda

13 November 2000 SIGAda WWW 15

© Currie Colket, Brad Balfour, John McCormick, Clyde Roby, & David Wheeler for ACM SIGAda

What is HTML• Lingua franca for publishing hypertext on the World Wide Web• Non-proprietary format based upon SGML• Created and processed by a wide range of tools

from simple plain text editors to sophisticated WYSIWYG authoring tools• Uses tags such as <h1> and </h1> to structure text for Presentation• Browsers attempt to produce page even when there are errors• Produced by W3C as recommendation; voted on by Consortium members

http://www.w3.org/MarkUp/• Status: Version 4.01 is current recommendation, replacing Version 3.2

• Support for Style Sheets - Control color, font, and layout• Internationalization Features - text right to left (Hebrew & Arabic)• Accessibility Features - Braille and speech synthesizers• Tables and Forms - many new features• Scripting and Multimedia - many new features

• 3 Flavors of HTML:• Transitional - take some advantage of 4.0, but primarily support 3.2• Strict - use style sheets, i.e., free of tags associated with layout• Frameset - used to partition browser into one or more frames

Page 16: Introduction to Web Technologies for Effective ... · Introduction to Web Technologies for Effective Dissemination of Information 13 November 2000 SIGAda 2000 Mr. Currie Colket SIGAda

13 November 2000 SIGAda WWW 16

© Currie Colket, Brad Balfour, John McCormick, Clyde Roby, & David Wheeler for ACM SIGAda

HTML Basics

HTML: HyperText Markup Language is Semantic Markup

physical: indent 1.0”, Use 24-Point Roman Font, Print “Hello”

semantic: <H1>Hello</H1> uses markup tags• Physical is WYSIWYG; HTML will differ on each system• Designed to be extensible, in fact, still evolving• Uses HyperText Transport Protocol (HTTP)• Tag names are case insensitive• HTML Program Structure:

<HTML><HEAD>

<Title><!--Non-visible stuff here-->

</heaD><Body>

<!--Visible stuff here--></BODY>

</HTML>

• Some Tags have attributes

• Text is continuous regardless of spaces/CR

• Most Tags in pairs; solo:<P> Paragraph Break<Br> Line Break<HR> Horizontal Rule

<BODY BACKGROUND=“my_file.jpg” T EXT="#000000" LINK="#0000ff" VLINK="#ff0000" BGCOLOR="#ffffef">

Page 17: Introduction to Web Technologies for Effective ... · Introduction to Web Technologies for Effective Dissemination of Information 13 November 2000 SIGAda 2000 Mr. Currie Colket SIGAda

13 November 2000 SIGAda WWW 17

© Currie Colket, Brad Balfour, John McCormick, Clyde Roby, & David Wheeler for ACM SIGAda

Fonts; Colors; Bold; Italics<H1> Highlighting HTML </H1>

Characters can be highlighted using <B>Boldfaced</B>, <BIG>Big and <BIG>Bigger</BIG></BIG> text, <I>Italicized text</I>, <S>Strike-through Text</S>,<SMALL> Small and <SMALL> Smaller </SMALL> </SMALL> text,with <SUB>Subscripts</SUB> and <SUP>Superscripts</SUP>,with <TT>Typewriter font</TT> and even <U> underlining for emphasis. </U>

<P>There is also a concept of Logical Highlighting using <STRONG>Strongly Emphasized</STRONG> Text,<CODE>Computer Code</CODE> Text,<KBD>Keyboard Character</KBD> Text,<SAMP>Literal Character</SAMP> Text,<DFN>Defining Instance</DFN> Text, <EM>Emphasized</EM> Text,<VAR>Variable</VAR> Text,<STRIKE>Strike-out</STRIKE> Text.

<P><CENTER><FONT COLOR="#009900"><FONT SIZE=+4>SIGAda</FONT></FONT><BR><FONT COLOR="#FF0000"> <FONT SIZE=+3>WWW Tutorial</FONT></FONT><FONT COLOR="BLUE"> <FONT SIZE=+2><P> Sunday, 7:30 - 11:30 PM</FONT></FONT></CENTER>

Page 18: Introduction to Web Technologies for Effective ... · Introduction to Web Technologies for Effective Dissemination of Information 13 November 2000 SIGAda 2000 Mr. Currie Colket SIGAda

13 November 2000 SIGAda WWW 18

© Currie Colket, Brad Balfour, John McCormick, Clyde Roby, & David Wheeler for ACM SIGAda

Creating Lists<H1> List Example </H1>

<P>The 3 most important things in real estate are: [Ordered Lists]<OL><Li> Location,<Li> Location, and </Li><Li> Location (It should be noted that all lists will wrap around with the correct indentation desired for the screen.</OL>

The most important things in talking about software are: [UnOrdered Lists]<UL><Li> Using Bullets Correctly<Li> Using Plenty of Bullets, and<Li> Using Subordinate Bullets When Necessary

<OL TYPE="a"><Li> With Letters<Li> Again with Letters

<OL TYPE="i"><Li> With Small Roman Numerals </OL><OL TYPE="I"><Li> With Large Roman Numerals</OL><OL TYPE="1"><Li> With Numbers </OL><OL TYPE="1" START="7"><Li> Even With Numbers Out of Sequence </OL>

</OL></UL>

Page 19: Introduction to Web Technologies for Effective ... · Introduction to Web Technologies for Effective Dissemination of Information 13 November 2000 SIGAda 2000 Mr. Currie Colket SIGAda

13 November 2000 SIGAda WWW 19

© Currie Colket, Brad Balfour, John McCormick, Clyde Roby, & David Wheeler for ACM SIGAda

Creating Links to URLs - 1<H1> Link Example </H1>

<P>The following URLs contain useful information on using html:<OL><LI> <A HREF="http://www.w3.org/MarkUp/">W3C HTML Home Page</A> -

<I>http://www.w3.org/MarkUp/</I><LI> <A HREF="http://www.w3.org/MarkUp/Activity.html">W3C User Interface Domain</A> -

<I>http://www.w3.org/MarkUp/Activity.html</I><LI> <A HREF="http://www.cc.ukans.edu/~acs/docs/other/HTML_quick.shtml">HTML Quick Reference</A> -

<I>http://www.cc.ukans.edu/~acs/docs/other/HTML_quick.shtml</I><LI> <A HREF="http://werbach.com/barebones/">The Bare Bones Guide to HTML</A> -

<I>http://werbach.com/barebones/</I><LI> <A HREF="http://www.ncsa.uiuc.edu/SDG/Software/Mosaic/Docs/d2-htmlinfo.html">

Creating HTML Documents</A> -<I>http://www.ncsa.uiuc.edu/SDG/Software/Mosaic/Docs/d2-htmlinfo.html</I>

<LI> <A HREF="http://www.eclipse.net/derek/">HTML Primers and Tutorials</A> -<I>http://www.eclipse.net/derek/</I>

<LI> <A HREF="http://www.bbsinc.com/symbol.html">ISO Latin 1 Character Entities and HTML Escape Sequence Table</A> -

<I>http://www.bbsinc.com/symbol.html</I><LI> <A HREF="http://www.willcam.com/cmat/html/crossref.html">Compact Index of HTML Tags</A> -

<I>http://www.willcam.com/cmat/html/crossref.html</I><LI> <A HREF="http://www.ncsa.uiuc.edu/SDG/Software/Mosaic/Docs/d2-tech.html">

HTML, URL, and HTTP Technical Information and Specifications</A> -<I>http://www.ncsa.uiuc.edu/SDG/Software/Mosaic/Docs/d2-tech.html</I>

<LI> <A HREF=”http://dir.yahoo.com/Computers_and_Internet/Information_and_Documentation/Data_Formats/HTML/">Yahoo HTML Search Node</A> -

<I> http://dir.yahoo.com/Computers_and_Internet/Information_and_Documentation/Data_Formats/HTML/ </I></OL>

Page 20: Introduction to Web Technologies for Effective ... · Introduction to Web Technologies for Effective Dissemination of Information 13 November 2000 SIGAda 2000 Mr. Currie Colket SIGAda

13 November 2000 SIGAda WWW 20

© Currie Colket, Brad Balfour, John McCormick, Clyde Roby, & David Wheeler for ACM SIGAda

Creating Links to URLs - 2

Page 21: Introduction to Web Technologies for Effective ... · Introduction to Web Technologies for Effective Dissemination of Information 13 November 2000 SIGAda 2000 Mr. Currie Colket SIGAda

13 November 2000 SIGAda WWW 21

© Currie Colket, Brad Balfour, John McCormick, Clyde Roby, & David Wheeler for ACM SIGAda

Creating Anchors/Targets<HTML><HEAD><TITLE>Anchors/Targets Example</TITLE></HEAD>

<BODY><H1>Anchors/Targets Example</H1><P>Navigation: <A HREF="#Email">Email Addresses</A> | <A HREF="#News">News</A> | <A HREF="#Weather">Weather</A> <Br></P>

<H2><A NAME="Email">Email Addresses</H2><UL><LI><A HREF="email.html">

Pelot Email Addresses</A> </LI><LI><A HREF="email.html#Colket">

Colket Email Addresses</A> <IMG SRC="gif/updated.gif" WIDTH=46 HEIGHT=11></LI>

<LI><A HREF="email.html#Colcord">Colcord Email Addresses</A> </LI>

</UL><H2><A NAME="News">News</H2>News stuff<H2><A NAME="Weather">Weather</H2>Weather Stuff</HTML>

Page 22: Introduction to Web Technologies for Effective ... · Introduction to Web Technologies for Effective Dissemination of Information 13 November 2000 SIGAda 2000 Mr. Currie Colket SIGAda

13 November 2000 SIGAda WWW 22

© Currie Colket, Brad Balfour, John McCormick, Clyde Roby, & David Wheeler for ACM SIGAda

Creating Relative Links

Useful for Program Development

File on local system has same relative name as file on remote system

Switch from one system to other with simple click

<H1><A NAME="Top">Relative Link Example</H1>

<P>Navigation: <A HREF="http://www.colket.org/">

To www.colket.org</A> | <A HREF="file:///c|/www/index.html">

To C Drive</A> <Br>

</P>Technology Resources:

<A HREF="acronyms.html">Acronyms</A> | <A HREF="Ada.html">Ada</A> | <A HREF="confere.html#Conferences_Future">

Conferences</A> | <A HREF="html.html">HTML</A> | <A HREF="internet.html">Internet</A> | <A HREF="java.html#Internet">Java</A> | <A HREF="OO.html#OO">OO</A> | <A HREF="Reuse.html">Reuse</A> | <A HREF="email.html">Email Addresses</A> <Br>

Page 23: Introduction to Web Technologies for Effective ... · Introduction to Web Technologies for Effective Dissemination of Information 13 November 2000 SIGAda 2000 Mr. Currie Colket SIGAda

13 November 2000 SIGAda WWW 23

© Currie Colket, Brad Balfour, John McCormick, Clyde Roby, & David Wheeler for ACM SIGAda

Creating Mailto Links<HTML><HEAD><TITLE>Mailto Example </TITLE></HEAD>

<BODY><H1> Mailto Example </H1>

Please email comments on this course to<A HREF="mailto:

&quot;Currie Colket&quot;&lt;[email protected]&gt;,

&quot;Brad Balfour&quot; &lt;[email protected]&gt;,

&quot;Clyde Roby&quot; &lt;[email protected]&gt;,

&quot;John McCormick&quot; &lt;[email protected]&gt;"

TITLE="Comments on Course">Currie, Brad, Clyde, and John</A>

<P><ADDRESS>Currie Colket <A HREF="mailto:[email protected]"> ([email protected])</A> </ADDRESS></BODY></HTML>

&quot;Currie Colket&quot; &lt;[email protected]&gt;

is equivalent to

“Currie Colket” <[email protected]>

Page 24: Introduction to Web Technologies for Effective ... · Introduction to Web Technologies for Effective Dissemination of Information 13 November 2000 SIGAda 2000 Mr. Currie Colket SIGAda

13 November 2000 SIGAda WWW 24

© Currie Colket, Brad Balfour, John McCormick, Clyde Roby, & David Wheeler for ACM SIGAda

Incorporating Images<H1> Image Example </H1>

<P>ASIS is an interface between an Ada environment as defined by ISO/IEC8652:1995 (the Ada Reference Manual) <IMG Align=bottom SRC="gif/new.gif">and any tool requiringinformation from this environment, as shown below:<IMG SRC="gif/updated.gif" WIDTH=46 HEIGHT=11>

<Center><IMG SRC="gif/asis.gif" ALT="ASIS as interface to Ada compilation environment" WIDTH=488 HEIGHT=306><BR><B>ASIS as interface to Ada compilation environment</B></Center>

Above image made in PowerPoint by:• Creating image; cutting it from page• Using Page Setup, selecting landscape, 3”x5”• Pasting image onto page; aligning it to center• Saving as gif (or jpeg) • Obtaining size using Photo Editor Resize function

Size is important; allows for building page sans images

ALT for browsers without graphicsor browsers turned off

Bad Form

Better Form

Good Form

Page 25: Introduction to Web Technologies for Effective ... · Introduction to Web Technologies for Effective Dissemination of Information 13 November 2000 SIGAda 2000 Mr. Currie Colket SIGAda

13 November 2000 SIGAda WWW 25

© Currie Colket, Brad Balfour, John McCormick, Clyde Roby, & David Wheeler for ACM SIGAda

Putting Code On-line<H1> Code Example </H1>

<P>EXAMPLE: Loop iteration scheme<pre>

List : constant Asis.Element_List := -- 3.7<I>&lt;ASIS function returning a list>;</I>

An_Element : Asis.Element; -- 3.6begin

for I in List’Range loopAn_Element := List (I);<STRONG>Process (An_Element);

</STRONG>end loop;</pre>

Use <PRE> for large blocks of code• For Preformatted text• Characters in fixed width• Preserves space characters, CR• Allows for character emphasis• Anchors and text highlighting tags only

Page 26: Introduction to Web Technologies for Effective ... · Introduction to Web Technologies for Effective Dissemination of Information 13 November 2000 SIGAda 2000 Mr. Currie Colket SIGAda

13 November 2000 SIGAda WWW 26

© Currie Colket, Brad Balfour, John McCormick, Clyde Roby, & David Wheeler for ACM SIGAda

Forms - 1<H1> Form Example </H1><FORM ACTION="mailto:[email protected]" METHOD="POST"> <B>Last Name: </B><INPUT TYPE="TEXT" MAXLENGTH="255" NAME="Lastname"><B>First Name: </B><INPUT TYPE="TEXT" MAXLENGTH="255" NAME="Firstname"><Br><B>Address Line 1: </B><INPUT TYPE="TEXT" MAXLENGTH="255" SIZE="50" NAME="Address1"><Br><B>Address Line 2: </B><INPUT TYPE="TEXT" MAXLENGTH="255" SIZE="50" NAME="Address2"><Br><B>City: </B><INPUT TYPE="TEXT" MAXLENGTH="40" NAME="City"><B>State: </B><SELECT NAME="State" >

<OPTION SELECTED> DC<OPTION> MD<OPTION> VA

</SELECT><B>Zip: </B><INPUT TYPE="TEXT" MAXLENGTH="15" NAME="Zip">

<P><B>Area Code: </B><INPUT TYPE="TEXT" MAXLENGTH="3" SIZE="3" NAME="Area_Code"><B>Phone: </B><INPUT TYPE="TEXT" MAXLENGTH="15" NAME="Phone"><B>E-mail: </B><INPUT TYPE="TEXT" MAXLENGTH="80" SIZE="30" NAME="Email">

<P><B>Volunteer Interests:</B>[<INPUT TYPE="checkbox" NAME="Interests" VALUE="Program" CHECKED>Program][<INPUT TYPE="checkbox" NAME="Interests" VALUE="Publicity">Publicity][<INPUT TYPE="checkbox" NAME="Interests" VALUE="Local">Local Arrangements]<SMALL><EM>(Multiple items can be selected.)</EM></SMALL>

<P><B>Ada Awareness Initiative: </B><INPUT TYPE="radio" NAME="Ada_awareness" VALUE="Yes" CHECKED > Yes<INPUT TYPE="radio" NAME="Ada_awareness" VALUE="No" > No<INPUT TYPE="radio" NAME="Ada_awareness" VALUE="Maybe"> Maybe <SMALL><EM>(Only one item can be selected.)</EM></SMALL><Br>

<CENTER><TEXTAREA COLS=60 ROWS=4 WRAP="on" NAME="Special_Notes">Enter any special comments you might have here.</TEXTAREA></CENTER>

<P> <INPUT TYPE="submit" NAME="sub" VALUE="Send Form"> <INPUT TYPE="reset" VALUE="Reset Form">

</FORM>

Action

Text Input

Checkboxes

Radios

Text Areas

Submit/Reset

Text Options

Page 27: Introduction to Web Technologies for Effective ... · Introduction to Web Technologies for Effective Dissemination of Information 13 November 2000 SIGAda 2000 Mr. Currie Colket SIGAda

13 November 2000 SIGAda WWW 27

© Currie Colket, Brad Balfour, John McCormick, Clyde Roby, & David Wheeler for ACM SIGAda

Forms - 2

Page 28: Introduction to Web Technologies for Effective ... · Introduction to Web Technologies for Effective Dissemination of Information 13 November 2000 SIGAda 2000 Mr. Currie Colket SIGAda

13 November 2000 SIGAda WWW 28

© Currie Colket, Brad Balfour, John McCormick, Clyde Roby, & David Wheeler for ACM SIGAda

Forms - 3 <FORM ACTION="mailto:[email protected]" METHOD="POST">

Email = Subject: Form posted from Mozilla Lastname=Colket&Firstname=Currie&Address1=9906+Dale+Ridge+Court&Address2=&City=Vienna&State=VA&Zip=22181-5348&Area_Code=703&Phone=883-7381&Email=colket%40acm.org&Interests=Program&Ada_awareness=Yes&Special_Notes=This+is+a+demonstration+of+posting+forms.+Notice+how+the+text+automatically+wraps+around+as+the+information+is+typed.%0D%0A++&sub=Send+Form

< FORM ACTION ="https://swww.acm.org/signup.cgi" method="post">

Use Ada95 bindings to CGI to automatically process form. • Automatically confirm submission of form• Automatically update database• Perform other analysis of submitted information

David Wheelerwill address

Ada95 Bindings to CGI

Netscape returns as attachment Type: application/x-www-form-urlencodedOthers return in different formats.

Page 29: Introduction to Web Technologies for Effective ... · Introduction to Web Technologies for Effective Dissemination of Information 13 November 2000 SIGAda 2000 Mr. Currie Colket SIGAda

13 November 2000 SIGAda WWW 29

© Currie Colket, Brad Balfour, John McCormick, Clyde Roby, & David Wheeler for ACM SIGAda

Using the HTML <Head>

TITLE (Only required <HEAD> Element)• Used as name for Bookmarks (those >60 are blank)• Used to label display window or text screen• Used by browsers as quick index mechanism

Example: <TITLE> ACM SIGAda Home Page </TITLE>

META (Optional - But highly recommended)• Used for Meta information not explicitly defined elsewhere, Examples:<META NAME=“Keywords” CONTENT= “Ada, Safety-Critical, SE”><META HTTP-EQUIV=“Creation-Date” CONTENT= “17-Oct-99”>

BASE (Optional & NOT Recommended)• Used for recording the base URL of the document• Prevents relative links from developmental environments• Recorded as URL in Bookmarks instead of actual URLExample: <BASE HREF=“http://www.acm.org/SIGAda/index.html” >

Page 30: Introduction to Web Technologies for Effective ... · Introduction to Web Technologies for Effective Dissemination of Information 13 November 2000 SIGAda 2000 Mr. Currie Colket SIGAda

13 November 2000 SIGAda WWW 30

© Currie Colket, Brad Balfour, John McCormick, Clyde Roby, & David Wheeler for ACM SIGAda

Netscape Composer

Page 31: Introduction to Web Technologies for Effective ... · Introduction to Web Technologies for Effective Dissemination of Information 13 November 2000 SIGAda 2000 Mr. Currie Colket SIGAda

13 November 2000 SIGAda WWW 31

© Currie Colket, Brad Balfour, John McCormick, Clyde Roby, & David Wheeler for ACM SIGAda

Creating Tables

Page 32: Introduction to Web Technologies for Effective ... · Introduction to Web Technologies for Effective Dissemination of Information 13 November 2000 SIGAda 2000 Mr. Currie Colket SIGAda

13 November 2000 SIGAda WWW 32

© Currie Colket, Brad Balfour, John McCormick, Clyde Roby, & David Wheeler for ACM SIGAda

Effective Design Strategies

Appropriate to Disseminating Information

Clyde RobyIDA

Note: Originally developed by Brad Balfour of Objective Interface

Page 33: Introduction to Web Technologies for Effective ... · Introduction to Web Technologies for Effective Dissemination of Information 13 November 2000 SIGAda 2000 Mr. Currie Colket SIGAda

13 November 2000 SIGAda WWW 33

© Currie Colket, Brad Balfour, John McCormick, Clyde Roby, & David Wheeler for ACM SIGAda

This Section: Concept and Goals• Main Goal:

– To help understand the many ways that the WWW can be used to communicate information

• Secondary Goal:– To help new “designers” to effectively choose appropriate

techniques from among the many that the web provides

• Technique: Descriptive rather than Prescriptive• Present a series of questions to be asked in order

to decide what structure and techniques to use to build the web pages (web site)

• Also will present a list of “rules” (both the commonly agreed upon and the controversial)

Page 34: Introduction to Web Technologies for Effective ... · Introduction to Web Technologies for Effective Dissemination of Information 13 November 2000 SIGAda 2000 Mr. Currie Colket SIGAda

13 November 2000 SIGAda WWW 34

© Currie Colket, Brad Balfour, John McCormick, Clyde Roby, & David Wheeler for ACM SIGAda

Building A Collection of Web Pages —Things to Think About

• The Audience• Ways the Audience Gets Info and Gets Notified of Changes• Frequency of Browsing by Audience• Why Does the Audience Need Your Site• What Makes the Site Attractive• Kinds of Sites• Types of Information Provided• Organizing the Information• Types of Content• Design Tips/“Rules”

Page 35: Introduction to Web Technologies for Effective ... · Introduction to Web Technologies for Effective Dissemination of Information 13 November 2000 SIGAda 2000 Mr. Currie Colket SIGAda

13 November 2000 SIGAda WWW 35

© Currie Colket, Brad Balfour, John McCormick, Clyde Roby, & David Wheeler for ACM SIGAda

The Audience

•Who are they?•What do they need?•What do they want?•How experienced are they?•What do they already know?•What do they want to find out?•How similar are they to the webmaster?•How different are they from the webmaster?•Are they using modern browsers on fast machines?•Are their graphics enabled?

Page 36: Introduction to Web Technologies for Effective ... · Introduction to Web Technologies for Effective Dissemination of Information 13 November 2000 SIGAda 2000 Mr. Currie Colket SIGAda

13 November 2000 SIGAda WWW 36

© Currie Colket, Brad Balfour, John McCormick, Clyde Roby, & David Wheeler for ACM SIGAda

Ways the Audience Gets Info and Gets Notified of Changes

• Push versus Pull Site Info• Push versus Pull Change Notification

– Interrupt versus Polling– Most web sites are pull only and have no push content

» Not even for notification of changes/updates/new info

• Browsing oriented site info organization• Search oriented site info organization• “Channels”• E-mail notification plus Web-Site• Print “Ads” notification of web-site (or TV)

Page 37: Introduction to Web Technologies for Effective ... · Introduction to Web Technologies for Effective Dissemination of Information 13 November 2000 SIGAda 2000 Mr. Currie Colket SIGAda

13 November 2000 SIGAda WWW 37

© Currie Colket, Brad Balfour, John McCormick, Clyde Roby, & David Wheeler for ACM SIGAda

Frequency of Browsingby Audience

• Multiple Times a Day• Daily• Weekly• Monthly• When Notified• Only when first found

– Or found via a search engine– Or found via a link to the site from the outside

• When ready to purchase• Reference Only (based on external need for info)

Page 38: Introduction to Web Technologies for Effective ... · Introduction to Web Technologies for Effective Dissemination of Information 13 November 2000 SIGAda 2000 Mr. Currie Colket SIGAda

13 November 2000 SIGAda WWW 38

© Currie Colket, Brad Balfour, John McCormick, Clyde Roby, & David Wheeler for ACM SIGAda

Why Does the AudienceNeed Your Site

• Uniqueness?• Timeliness?• Loyalty?• Membership?• Who is your Competition?

– Within SIGAda– Within Ada Community– Within ACM– Within the community of programming languages– With the software development community

Page 39: Introduction to Web Technologies for Effective ... · Introduction to Web Technologies for Effective Dissemination of Information 13 November 2000 SIGAda 2000 Mr. Currie Colket SIGAda

13 November 2000 SIGAda WWW 39

© Currie Colket, Brad Balfour, John McCormick, Clyde Roby, & David Wheeler for ACM SIGAda

What Makes the Site Attractive

• Content?• Look and Feel?• Responsiveness?• Satisfying the Audience’s need?• How much is too much?• How much is too little?• Issues:

– Connection Speed (everyone focuses on this)– Form versus Content (is it “versus”?)– Uniqueness versus Sameness– Freshness of content and form

Page 40: Introduction to Web Technologies for Effective ... · Introduction to Web Technologies for Effective Dissemination of Information 13 November 2000 SIGAda 2000 Mr. Currie Colket SIGAda

13 November 2000 SIGAda WWW 40

© Currie Colket, Brad Balfour, John McCormick, Clyde Roby, & David Wheeler for ACM SIGAda

Kinds of Sites• Informational

– e.g., medicine, academia, most .org

• News– e.g., CNN, MSNBC, ESPN

• Product/Service Oriented (Sales secondary via ads)– e.g., Kelly Blue Book

• Sales/Selling Oriented– e.g., “catalog” ordering, Ford, most product companies

• Organizational - Member Oriented– e.g., info to members only or predominately

• Organizational - Outreach Oriented– e.g., get new members to join based on info

Page 41: Introduction to Web Technologies for Effective ... · Introduction to Web Technologies for Effective Dissemination of Information 13 November 2000 SIGAda 2000 Mr. Currie Colket SIGAda

13 November 2000 SIGAda WWW 41

© Currie Colket, Brad Balfour, John McCormick, Clyde Roby, & David Wheeler for ACM SIGAda

Types of Information Provided(SIGAda specific)

• Technical info• Copies of printed publications• Software (source code and/or executables)• Papers• Data on experiences/results• Membership info• Organizational infrastructure (e.g., meeting minutes,

org. structure, motions, charter, etc)• Historical info (e.g., past e-mail list traffic archive,

conference results)• Contact info• Links to other sites

Page 42: Introduction to Web Technologies for Effective ... · Introduction to Web Technologies for Effective Dissemination of Information 13 November 2000 SIGAda 2000 Mr. Currie Colket SIGAda

13 November 2000 SIGAda WWW 42

© Currie Colket, Brad Balfour, John McCormick, Clyde Roby, & David Wheeler for ACM SIGAda

Organizing the Information• Types:

– Linear– Hierarchy– Graph (DAG)– Random

• Depth of Links• Breadth of Links• What is the relationship between the contents• What do people need to find?

– What do they know when they want to find it?

• Search oriented users versus Browsing users

Page 43: Introduction to Web Technologies for Effective ... · Introduction to Web Technologies for Effective Dissemination of Information 13 November 2000 SIGAda 2000 Mr. Currie Colket SIGAda

13 November 2000 SIGAda WWW 43

© Currie Colket, Brad Balfour, John McCormick, Clyde Roby, & David Wheeler for ACM SIGAda

Types of Content

• Text• Graphics• Multimedia

– Video– Sound

• Stored Documents– Ftp– Served Interactively– (format: PDF, PS, text)

• Software– Source– Executable– Browsed on-line (hyperlinked)– Downloaded

• Steak versus Sizzle• Content versus

Presentation• Competition• General overall Level of

“Professionalism”• Native to the browser

versus needs plug-in• Use of JavaScript• Use of Java• Use of cgi

Page 44: Introduction to Web Technologies for Effective ... · Introduction to Web Technologies for Effective Dissemination of Information 13 November 2000 SIGAda 2000 Mr. Currie Colket SIGAda

13 November 2000 SIGAda WWW 44

© Currie Colket, Brad Balfour, John McCormick, Clyde Roby, & David Wheeler for ACM SIGAda

Design Tips/“Rules”Commonly Agreed Upon

• No blinking text• KISS• Don’t overwhelm with

graphics• Navigate with text instead

of/in addition to any image maps (unless the navigation is truly graphical like a map)

• Make the organization obvious (and help show users where they are at all times)

• Keep links & site up to date

Controversial(like Multiple Inheritance)

• Frames• All sites must be fast to

download– What’s the connection speed

of your users (home versus work)

Page 45: Introduction to Web Technologies for Effective ... · Introduction to Web Technologies for Effective Dissemination of Information 13 November 2000 SIGAda 2000 Mr. Currie Colket SIGAda

13 November 2000 SIGAda WWW 45

© Currie Colket, Brad Balfour, John McCormick, Clyde Roby, & David Wheeler for ACM SIGAda

Tools to Manage Development

of Web Pages

Clyde RobyIDA

[email protected]

Page 46: Introduction to Web Technologies for Effective ... · Introduction to Web Technologies for Effective Dissemination of Information 13 November 2000 SIGAda 2000 Mr. Currie Colket SIGAda

13 November 2000 SIGAda WWW 46

© Currie Colket, Brad Balfour, John McCormick, Clyde Roby, & David Wheeler for ACM SIGAda

Goal and Concepts

• Goal: Development, Management, and Update of a Web Site (many web pages)

• Development and Organization• Management• Updating the Web Site• Fixing the Web Site• Tools to do the Job• An Example: The ASIS Web Site

Page 47: Introduction to Web Technologies for Effective ... · Introduction to Web Technologies for Effective Dissemination of Information 13 November 2000 SIGAda 2000 Mr. Currie Colket SIGAda

13 November 2000 SIGAda WWW 47

© Currie Colket, Brad Balfour, John McCormick, Clyde Roby, & David Wheeler for ACM SIGAda

Web Development

• Local Development of Web Pages• Development of Informational Materials• Moving Your Web Pages to the Web Site

Page 48: Introduction to Web Technologies for Effective ... · Introduction to Web Technologies for Effective Dissemination of Information 13 November 2000 SIGAda 2000 Mr. Currie Colket SIGAda

13 November 2000 SIGAda WWW 48

© Currie Colket, Brad Balfour, John McCormick, Clyde Roby, & David Wheeler for ACM SIGAda

Web Management

• Who Comes to the Web Site?• What do they Visit on the Web Site?• How Often do they Visit/Return?• How do they Retrieve/Use the Information?• Why do they Visit the Web Site?

Page 49: Introduction to Web Technologies for Effective ... · Introduction to Web Technologies for Effective Dissemination of Information 13 November 2000 SIGAda 2000 Mr. Currie Colket SIGAda

13 November 2000 SIGAda WWW 49

© Currie Colket, Brad Balfour, John McCormick, Clyde Roby, & David Wheeler for ACM SIGAda

Updating the Web Site

• Local Update of Web Pages• Updating of Informational Materials• Updating Pages on the Web Site

Page 50: Introduction to Web Technologies for Effective ... · Introduction to Web Technologies for Effective Dissemination of Information 13 November 2000 SIGAda 2000 Mr. Currie Colket SIGAda

13 November 2000 SIGAda WWW 50

© Currie Colket, Brad Balfour, John McCormick, Clyde Roby, & David Wheeler for ACM SIGAda

Fixing the Web Site

• Broken Links• Wrong Information• Outdated Information• ISP Problems• Notification to the Webmaster

Page 51: Introduction to Web Technologies for Effective ... · Introduction to Web Technologies for Effective Dissemination of Information 13 November 2000 SIGAda 2000 Mr. Currie Colket SIGAda

13 November 2000 SIGAda WWW 51

© Currie Colket, Brad Balfour, John McCormick, Clyde Roby, & David Wheeler for ACM SIGAda

WWW Tools

• Tools to Develop the Web Site• Tools to Manage the Web Site• Tools to Update the Web Site• Tools to Find and Fix the Problems

Page 52: Introduction to Web Technologies for Effective ... · Introduction to Web Technologies for Effective Dissemination of Information 13 November 2000 SIGAda 2000 Mr. Currie Colket SIGAda

13 November 2000 SIGAda WWW 52

© Currie Colket, Brad Balfour, John McCormick, Clyde Roby, & David Wheeler for ACM SIGAda

The ASIS Web Site

• ASIS Specification• ASIS Tutorial Pages• Information Updates

– Technical Information– Vendor Product Information

• ASIS Bibliography• Notification to SIGAda-ASIS members• Membership Updates

Page 53: Introduction to Web Technologies for Effective ... · Introduction to Web Technologies for Effective Dissemination of Information 13 November 2000 SIGAda 2000 Mr. Currie Colket SIGAda

13 November 2000 SIGAda WWW 53

© Currie Colket, Brad Balfour, John McCormick, Clyde Roby, & David Wheeler for ACM SIGAda

What This Means

• Test your web site locally• Follow a few simple rules

– Information on Home Page– Links Among Pages on Web Site– ALT for ALL Graphics Images

<IMG SRC=“stuff.gif” ALT=“Description of Stuff”>– Use height and width in graphics– Information and Documents served via links “Save As”– Relatively Short Pages (50K Bytes Max)– For links greater than 50K Bytes, indicate size

Page 54: Introduction to Web Technologies for Effective ... · Introduction to Web Technologies for Effective Dissemination of Information 13 November 2000 SIGAda 2000 Mr. Currie Colket SIGAda

13 November 2000 SIGAda WWW 54

© Currie Colket, Brad Balfour, John McCormick, Clyde Roby, & David Wheeler for ACM SIGAda

Easy Web Site Development• Home Page Information

– Table of Contents– Points of Contact– Becoming Involved

• RELATIVE links– Facilitates development of Web pages– Avoid links with .. Or ../.. (viewed as a security violation)

• Directory Structure “behind the scenes”• Internal links to main/home page and to sponsoring

organization• Proof pages likely to be printed (e.g., maps, program)

– Verify colors are easily readable when printed on black & white– Verify likely page break does not interfere with content use

Page 55: Introduction to Web Technologies for Effective ... · Introduction to Web Technologies for Effective Dissemination of Information 13 November 2000 SIGAda 2000 Mr. Currie Colket SIGAda

13 November 2000 SIGAda WWW 55

© Currie Colket, Brad Balfour, John McCormick, Clyde Roby, & David Wheeler for ACM SIGAda

Page Creation Web Sites

• www.microsoft.com/sitebuilder• members.aol.com/royalef/gifanim.htm• ds.dial.pipex.com/fw/animgifs.htm• www.barebones.com• www.demon.co.uk/Tangent/butwor.html• www.webtechs.com/html-val-svc/• htc.rit.edu/klephacks/markup.html• web.cs.bgsu.edu/morph/morphapplet.html

Page 56: Introduction to Web Technologies for Effective ... · Introduction to Web Technologies for Effective Dissemination of Information 13 November 2000 SIGAda 2000 Mr. Currie Colket SIGAda

13 November 2000 SIGAda WWW 56

© Currie Colket, Brad Balfour, John McCormick, Clyde Roby, & David Wheeler for ACM SIGAda

HTML Editors for Macs

• www.yahoo.com/Computers/World_Wide_Web/HTML_Editors/Macintosh

• www.uwtc.washington.edu/Computing/WWW/Mac/Directory.html

• www.awa.com/nct/software/webtools.html• www.vermeer.com/soft.htm

Page 57: Introduction to Web Technologies for Effective ... · Introduction to Web Technologies for Effective Dissemination of Information 13 November 2000 SIGAda 2000 Mr. Currie Colket SIGAda

13 November 2000 SIGAda WWW 57

© Currie Colket, Brad Balfour, John McCormick, Clyde Roby, & David Wheeler for ACM SIGAda

Mac HTML Editors

• www.navisoft.com/register/client/MP_Trial_1.01.sit.hqx• www.navisoft.com/NS/InsertRow/navipress pre• ftp://bradley.bradley.edu/pub/guru/ps2html/ps2html-v2.html• dragon.acadiau.ca/~giles/HTML_Editor_Documentation.html• sec-look.uiowa.edu/about/projects/arachnid-page.html• ftp://ftp.cray.com/src/WWWstuff/RTF/Users_Guide.html• www.ceneca.com/Ordering.html

Page 58: Introduction to Web Technologies for Effective ... · Introduction to Web Technologies for Effective Dissemination of Information 13 November 2000 SIGAda 2000 Mr. Currie Colket SIGAda

13 November 2000 SIGAda WWW 58

© Currie Colket, Brad Balfour, John McCormick, Clyde Roby, & David Wheeler for ACM SIGAda

General Info for Web Developers

• the-tech.mit.edu:80/KPT/Toms/index.html• linestone.kosone.com/people/nelsonl/nl.htm• www.info.net/~rdralph/icons/symbols/• abs.apple.com/apple-internet/authoring/• the-tech.mit.edu/cgi-bin/KPT_bgs.pl• www.netscape.com/assist/net_sites/bg/backgrounds.html• www.issi.com/people/russ/backgrounds.html• www.primenet.com/~piglett/textures.html• www.designsys.com/champ/background.html• www.sci.kun.nl/thalia/guide/color/faq.html• www.vmedia.com/archives/clipart/index.html

• www.cuteftp.com

Page 59: Introduction to Web Technologies for Effective ... · Introduction to Web Technologies for Effective Dissemination of Information 13 November 2000 SIGAda 2000 Mr. Currie Colket SIGAda

13 November 2000 SIGAda WWW 59

© Currie Colket, Brad Balfour, John McCormick, Clyde Roby, & David Wheeler for ACM SIGAda

Using ACM WWW

and Mailing List Facilities

John McCormickUniversity of Northern Iowa

Page 60: Introduction to Web Technologies for Effective ... · Introduction to Web Technologies for Effective Dissemination of Information 13 November 2000 SIGAda 2000 Mr. Currie Colket SIGAda

13 November 2000 SIGAda WWW 60

© Currie Colket, Brad Balfour, John McCormick, Clyde Roby, & David Wheeler for ACM SIGAda

The SIGAda Home Page

• Is a gateway to a lot of good information for the Ada community

• It is difficult for one volunteer with a full time job to keep all of this information up to date

– Bad links sprout like mushrooms– Lots of old news

Page 61: Introduction to Web Technologies for Effective ... · Introduction to Web Technologies for Effective Dissemination of Information 13 November 2000 SIGAda 2000 Mr. Currie Colket SIGAda

13 November 2000 SIGAda WWW 61

© Currie Colket, Brad Balfour, John McCormick, Clyde Roby, & David Wheeler for ACM SIGAda

Solution - More Volunteers

• We already have– Volunteers from some local SIGAda Chapters – Volunteers from some SIGAda working groups

Page 62: Introduction to Web Technologies for Effective ... · Introduction to Web Technologies for Effective Dissemination of Information 13 November 2000 SIGAda 2000 Mr. Currie Colket SIGAda

13 November 2000 SIGAda WWW 62

© Currie Colket, Brad Balfour, John McCormick, Clyde Roby, & David Wheeler for ACM SIGAda

Local SIGAda Chapters with Web Presence

• Baltimore• Jersey Shore• Twin Cities• Washington, DC

Page 63: Introduction to Web Technologies for Effective ... · Introduction to Web Technologies for Effective Dissemination of Information 13 November 2000 SIGAda 2000 Mr. Currie Colket SIGAda

13 November 2000 SIGAda WWW 63

© Currie Colket, Brad Balfour, John McCormick, Clyde Roby, & David Wheeler for ACM SIGAda

SIGAda Working Groupswith “Recent” Web Presence

• Ada as an HDL WG (forming)• Ada Bindings• ASIS• Commercial Ada Users• Education

– Jobs page (Searching for student worker)

• Safety and Security

Page 64: Introduction to Web Technologies for Effective ... · Introduction to Web Technologies for Effective Dissemination of Information 13 November 2000 SIGAda 2000 Mr. Currie Colket SIGAda

13 November 2000 SIGAda WWW 64

© Currie Colket, Brad Balfour, John McCormick, Clyde Roby, & David Wheeler for ACM SIGAda

More Help Needed in

• Tools, bindings, and components• Ada news• Ada advocacy• Additional locals• Additional working groups

Page 65: Introduction to Web Technologies for Effective ... · Introduction to Web Technologies for Effective Dissemination of Information 13 November 2000 SIGAda 2000 Mr. Currie Colket SIGAda

13 November 2000 SIGAda WWW 65

© Currie Colket, Brad Balfour, John McCormick, Clyde Roby, & David Wheeler for ACM SIGAda

This Tutorial

• Stated agenda– Provide volunteers (including myself) with the basic

information necessary to effectively disseminate information using the world wide web.

• My personal agenda – Recruit volunteers

Page 66: Introduction to Web Technologies for Effective ... · Introduction to Web Technologies for Effective Dissemination of Information 13 November 2000 SIGAda 2000 Mr. Currie Colket SIGAda

13 November 2000 SIGAda WWW 66

© Currie Colket, Brad Balfour, John McCormick, Clyde Roby, & David Wheeler for ACM SIGAda

ACM WWW

• ACM hosts SIG websites– RS/6000 UNIX server– turing.acm.org– Moving to perl.acm.org running Red Hat Linux 6.1

• Home directory for SIGAda is

/acminfo/1/sigs/sigada or/usr2/info/sigs/sigada

Page 67: Introduction to Web Technologies for Effective ... · Introduction to Web Technologies for Effective Dissemination of Information 13 November 2000 SIGAda 2000 Mr. Currie Colket SIGAda

13 November 2000 SIGAda WWW 67

© Currie Colket, Brad Balfour, John McCormick, Clyde Roby, & David Wheeler for ACM SIGAda

Procedures for Setting up a Local or Working Group

Home Page

• Option 1 Set up on your own machine and send me the URL

– Currently used by all locals except DC– Not used by any Working Group

• Option 2 Set up on ACM’s Turing– Currently used by all active working groups

Page 68: Introduction to Web Technologies for Effective ... · Introduction to Web Technologies for Effective Dissemination of Information 13 November 2000 SIGAda 2000 Mr. Currie Colket SIGAda

13 November 2000 SIGAda WWW 68

© Currie Colket, Brad Balfour, John McCormick, Clyde Roby, & David Wheeler for ACM SIGAda

Setting up Pages on Turing

• Requires an account on Turing• I will set up a subdirectory in which to put the

home page• We use UNIX groups and permissions to control

access to SIGAda subdirectories

Page 69: Introduction to Web Technologies for Effective ... · Introduction to Web Technologies for Effective Dissemination of Information 13 November 2000 SIGAda 2000 Mr. Currie Colket SIGAda

13 November 2000 SIGAda WWW 69

© Currie Colket, Brad Balfour, John McCormick, Clyde Roby, & David Wheeler for ACM SIGAda

Getting a Turing Account

• Send me the following information– Name– Company / Institution– Address– Telephone and FAX numbers– e-mail address– ACM membership number– Preferred login name (8 character limit)

Page 70: Introduction to Web Technologies for Effective ... · Introduction to Web Technologies for Effective Dissemination of Information 13 November 2000 SIGAda 2000 Mr. Currie Colket SIGAda

13 November 2000 SIGAda WWW 70

© Currie Colket, Brad Balfour, John McCormick, Clyde Roby, & David Wheeler for ACM SIGAda

Who Can Update a Page?

• Whoever is in the group that owns the file• I welcome suggestions for policy and means of

enforcement.

Page 71: Introduction to Web Technologies for Effective ... · Introduction to Web Technologies for Effective Dissemination of Information 13 November 2000 SIGAda 2000 Mr. Currie Colket SIGAda

13 November 2000 SIGAda WWW 71

© Currie Colket, Brad Balfour, John McCormick, Clyde Roby, & David Wheeler for ACM SIGAda

Guidance for Organizing Files

• Each working group and local chapter on Turing is rooted in their own subdirectory

• All groups currently use a flat organization• There are currently 19 subdirectories in the

SIGAda root directory

Page 72: Introduction to Web Technologies for Effective ... · Introduction to Web Technologies for Effective Dissemination of Information 13 November 2000 SIGAda 2000 Mr. Currie Colket SIGAda

13 November 2000 SIGAda WWW 72

© Currie Colket, Brad Balfour, John McCormick, Clyde Roby, & David Wheeler for ACM SIGAda

Suggestions for Pages

• Link to SIGAda home page• Link to ACM home page• Page owner name with e-mail link

(blank if maintained by SIGAda Secretary)• Date last modified• Should we design templates?

Page 73: Introduction to Web Technologies for Effective ... · Introduction to Web Technologies for Effective Dissemination of Information 13 November 2000 SIGAda 2000 Mr. Currie Colket SIGAda

13 November 2000 SIGAda WWW 73

© Currie Colket, Brad Balfour, John McCormick, Clyde Roby, & David Wheeler for ACM SIGAda

Use of Private Directories with Passwords

• ACM now provides this ability via their member account names

• www.acm.org/infodir/services/access_control.html

• Access control lists set up by ACM support– Based on subscription services or– list individual account names maintained by SIG Information

Director

Page 74: Introduction to Web Technologies for Effective ... · Introduction to Web Technologies for Effective Dissemination of Information 13 November 2000 SIGAda 2000 Mr. Currie Colket SIGAda

13 November 2000 SIGAda WWW 74

© Currie Colket, Brad Balfour, John McCormick, Clyde Roby, & David Wheeler for ACM SIGAda

CGI

• SIGAda used CGI scripts for SIGAda 2000 Conference Registration

• turing.acm.org did not have an Ada compiler available; perl.acm.org does have an Ada compiler

• SIGAda is working with ACM to have the Ada95 cgi interfaces available on perl.acm.org

• ACM policy is that each SIG is on its own

Page 75: Introduction to Web Technologies for Effective ... · Introduction to Web Technologies for Effective Dissemination of Information 13 November 2000 SIGAda 2000 Mr. Currie Colket SIGAda

13 November 2000 SIGAda WWW 75

© Currie Colket, Brad Balfour, John McCormick, Clyde Roby, & David Wheeler for ACM SIGAda

ACM Mailing Lists

• ACM uses Listserv software• Complete documentation at

– http://www.acm.org/infodir/services/listserv/doc.html (links to)– http://www.lsoft.com/manuals/1.8d/index.html:

» LISTSERV List Owner’s Quick Start » LISTSERV List Owner’s Manual » LISTSERV General User’s Guide

• All lists @acm.org– http://www.lsoft.com/SCRIPTS/WL.EXE?XH=ACM.ORG

Page 76: Introduction to Web Technologies for Effective ... · Introduction to Web Technologies for Effective Dissemination of Information 13 November 2000 SIGAda 2000 Mr. Currie Colket SIGAda

13 November 2000 SIGAda WWW 76

© Currie Colket, Brad Balfour, John McCormick, Clyde Roby, & David Wheeler for ACM SIGAda

SIGAda Mailing Lists - 1SIGADA-ABWG SIGADA-ANNOUNCE SIGADA-ASIS SIGADA-ASIS-OFFICERS SIGADA-ASIS-TECH SIGADA-AWARDS SIGADA-DC SIGADA-DC-EC SIGADA-EC SIGADA-EDITORS SIGADA-EEC SIGADA-LIAISONS SIGADA-LOCALS SIGADA-MEETINGS SIGADA-MEMBERS SIGADA-OOWGSIGADA-PAST-EC SIGADA-TALK SIGADA-WG SIGADA2000-COMMITTEE SIGADA2001-COMMITTEE SIGADA99-COMMITTEE

Ada Bindings Working Group (63 subscribers)Announcement List (846 subscribers)Ada Semantic Interface Spec. Working Group (21 subscribers)ASIS Officers Mailing List (11 subscribers)ASIS Technical Discussion Group (93 subscribers)Awards Announcement List (2 subscribers)DC SIGAda Chapter Mailing List (229 subscribers)DC SIGAda Chapter Officers Mailing List (16 subscribers)SIGAda Executive Committee Mailing List (8 subscribers)Ada Letters Editors (2 subscribers)SIGAda Extended Executive Committee (no subscriber)

Liaisons to Ada Organizations Around the World (16 subscribers)SIGAda Local Chapter Chairs (17 subscribers)Meetings Committee (1 subscriber)Discussion List (2 subscribers)Object Oriented Working Group (36 subscribers)Previous Executive Committee Mailing List (7 subscribers)Ongoing Discussion (56 subscribers)Working Group Chairs (22 subscribers) SIGAda 1999 COMMITTEE email distribution list (20 subscribers) SIGAda 2000 COMMITTEE email distribution list (28 subscribers) SIGAda 2001 COMMITTEE email distribution list (25 subscribers)

Page 77: Introduction to Web Technologies for Effective ... · Introduction to Web Technologies for Effective Dissemination of Information 13 November 2000 SIGAda 2000 Mr. Currie Colket SIGAda

13 November 2000 SIGAda WWW 77

© Currie Colket, Brad Balfour, John McCormick, Clyde Roby, & David Wheeler for ACM SIGAda

SIGAda Mailing Lists - 2

ADA-COMMENT Public Comments on the International Ada Standard (1 subscriber) ADASAGE AdaSage tool discussion (448 subscribers) ARG Ada Rapporteur Group of WG9; managing the Ada issues

(33 subscribers)TEAM-ADA Team Ada: Ada Advocacy Issues (83 & 95) (331 subscribers) WG9 ISO/IEC JTC1/SC22/WG9 (Ada) - Ada standardization topics

(62 subscribers)

Page 78: Introduction to Web Technologies for Effective ... · Introduction to Web Technologies for Effective Dissemination of Information 13 November 2000 SIGAda 2000 Mr. Currie Colket SIGAda

13 November 2000 SIGAda WWW 78

© Currie Colket, Brad Balfour, John McCormick, Clyde Roby, & David Wheeler for ACM SIGAda

Requesting a List

• Send me the necessary information (detailed on following slides)

• I’ll arrange for ACM Support to set up the list

Page 79: Introduction to Web Technologies for Effective ... · Introduction to Web Technologies for Effective Dissemination of Information 13 November 2000 SIGAda 2000 Mr. Currie Colket SIGAda

13 November 2000 SIGAda WWW 79

© Currie Colket, Brad Balfour, John McCormick, Clyde Roby, & David Wheeler for ACM SIGAda

Name and Description

• List Name– Prefix with SIGAda– Maximum of 24 characters

• Descriptive Title– Prefix with ACM SIGAda– Maximum of 70 characters

Page 80: Introduction to Web Technologies for Effective ... · Introduction to Web Technologies for Effective Dissemination of Information 13 November 2000 SIGAda 2000 Mr. Currie Colket SIGAda

13 November 2000 SIGAda WWW 80

© Currie Colket, Brad Balfour, John McCormick, Clyde Roby, & David Wheeler for ACM SIGAda

Subscription Options

• By owner Requests to subscribe are forwarded to the list owner for approval

• Open Requests to subscribe are accepted; anyone can join

• Closed Requests to subscribe are rejected. List owner adds subscribers

Page 81: Introduction to Web Technologies for Effective ... · Introduction to Web Technologies for Effective Dissemination of Information 13 November 2000 SIGAda 2000 Mr. Currie Colket SIGAda

13 November 2000 SIGAda WWW 81

© Currie Colket, Brad Balfour, John McCormick, Clyde Roby, & David Wheeler for ACM SIGAda

Senders (who can post)

• Public Anyone can post• Editors/Moderators Messages posted from

non-editors are forwarded to moderators for approval

• Owners Only list owners can post• Private Only list subscribers can post (this

option can be problematic)

Page 82: Introduction to Web Technologies for Effective ... · Introduction to Web Technologies for Effective Dissemination of Information 13 November 2000 SIGAda 2000 Mr. Currie Colket SIGAda

13 November 2000 SIGAda WWW 82

© Currie Colket, Brad Balfour, John McCormick, Clyde Roby, & David Wheeler for ACM SIGAda

Review (who can see who subscribes)

• Private Subscribers can review• Owner Only the list owner can review• Public Anyone can review

Page 83: Introduction to Web Technologies for Effective ... · Introduction to Web Technologies for Effective Dissemination of Information 13 November 2000 SIGAda 2000 Mr. Currie Colket SIGAda

13 November 2000 SIGAda WWW 83

© Currie Colket, Brad Balfour, John McCormick, Clyde Roby, & David Wheeler for ACM SIGAda

List Archive

• No• Monthly• Weekly• Yearly

Page 84: Introduction to Web Technologies for Effective ... · Introduction to Web Technologies for Effective Dissemination of Information 13 November 2000 SIGAda 2000 Mr. Currie Colket SIGAda

13 November 2000 SIGAda WWW 84

© Currie Colket, Brad Balfour, John McCormick, Clyde Roby, & David Wheeler for ACM SIGAda

Sample List AnnouncementWelcome To The Washington DC SIGAda Chapter Announcements List.

This list is intended to keep you informed of important ACM SIGAda information in the Washington DC area including upcoming local DC and Baltimore SIGAda chapter meetings, local software engineering conferences, and other professional activities.

You may leave this list at any time by sending mailto:[email protected] with the following one line body:SIGNOFF SIGAda_DC

If you need to change your email address, please signoff from your old system, as above, and resubcribe to the maillist from your new system by sending mailto:[email protected] with the following one line body:

SUBSCRIBE SIGAda_DC

If you no longer have access to your old email address, please send mailto:[email protected] requesting that your old address be removed and your new address be added.

If you have any questions about this list, please mailto: [email protected].

Additional information on the SIGAda_DC maillist is available on the DC SIGAda Home Page at: http://www.acm.org/sigs/sigada/locals/dc/

You are encouraged to notify your colleagues about this opportunity for professional software information. You do not need to be a member of ACM to subscribe. Please save this message for future reference.

Page 85: Introduction to Web Technologies for Effective ... · Introduction to Web Technologies for Effective Dissemination of Information 13 November 2000 SIGAda 2000 Mr. Currie Colket SIGAda

13 November 2000 SIGAda WWW 85

© Currie Colket, Brad Balfour, John McCormick, Clyde Roby, & David Wheeler for ACM SIGAda

Useful Listserv Commands - 1

• To add a person (to [email protected]):Add SIGAda_DC [email protected] Currie Colket pw=123456

Quiet Add SIGAda_DC [email protected] Currie Colket pw=123456

• To delete a personDelete SIGAda_DC [email protected] pw=1234546

Quiet Delete SIGAda_DC [email protected] pw=123456

• To see the current listReview SIGAda_DC pw=123456

Send messages to: [email protected]

Warning: if outgoing messages wrap at 72 characters, a CR is added and message is not recognized by listserv

Page 86: Introduction to Web Technologies for Effective ... · Introduction to Web Technologies for Effective Dissemination of Information 13 November 2000 SIGAda 2000 Mr. Currie Colket SIGAda

13 November 2000 SIGAda WWW 86

© Currie Colket, Brad Balfour, John McCormick, Clyde Roby, & David Wheeler for ACM SIGAda

Useful Listserv Commands - 2

• To add many people at a time

Warning: if outgoing messages wrap at 72 characters, a CR is added and listserv may process things very wrong

ADD SIGAda_DC DD=InitialList IMPORT PW=123456//InitialList DD *[email protected] Ben [email protected] Clyde [email protected] Hal [email protected] Bard [email protected] Karlotto [email protected] Currie [email protected] John [email protected] Ron [email protected] Clyde [email protected] Currie Colket/*

No commas, etc.Use quotes

Page 87: Introduction to Web Technologies for Effective ... · Introduction to Web Technologies for Effective Dissemination of Information 13 November 2000 SIGAda 2000 Mr. Currie Colket SIGAda

13 November 2000 SIGAda WWW 87

© Currie Colket, Brad Balfour, John McCormick, Clyde Roby, & David Wheeler for ACM SIGAda

Useful Listserv Commands - 3• To update list header

PUT SIGAda_DC LIST PW=123456* ACM DC SIGAda email distribution list* Owner= [email protected] (Currie Colket)* Owner= [email protected] (Currie Colket)* Owner= Quiet:* Owner= [email protected] (John McCormick)* Notebook=Yes,/home/listserv/home/notebooks/sigada_DC,Monthly,Private* Errors-To= Owner* Subscription= by owner* Ack= Yes* Confidential= No* Files= No* Notify= No* Mail-Via= Distribute * Validate= No* Reply-to= Sender,Respect * Review= Private* Send= Public* Stats= Normal,Private * X-Tags= Yes* Default-Options= NoFiles,NoRepro*

Warning: if outgoing messages wrap at 72 characters, a CR is added and message is not recognized by listserv

Added

Page 88: Introduction to Web Technologies for Effective ... · Introduction to Web Technologies for Effective Dissemination of Information 13 November 2000 SIGAda 2000 Mr. Currie Colket SIGAda

13 November 2000 SIGAda WWW 88

© Currie Colket, Brad Balfour, John McCormick, Clyde Roby, & David Wheeler for ACM SIGAda

Introduction to AdaCGI

David A. WheelerIDA

Page 89: Introduction to Web Technologies for Effective ... · Introduction to Web Technologies for Effective Dissemination of Information 13 November 2000 SIGAda 2000 Mr. Currie Colket SIGAda

13 November 2000 SIGAda WWW 89

© Currie Colket, Brad Balfour, John McCormick, Clyde Roby, & David Wheeler for ACM SIGAda

Outline

• Intro: myself, AdaCGI, CGI, Alternatives• Using Ada for Web Apps (+ and -)• High-Level: License, Basics• Using AdaCGI: Minimal Example, Debugging and Installing• Special: Get/Post, Cookies, Security, Recent Additions,

Limitations• AdaCGI spec & Long Example (“Search”)

Page 90: Introduction to Web Technologies for Effective ... · Introduction to Web Technologies for Effective Dissemination of Information 13 November 2000 SIGAda 2000 Mr. Currie Colket SIGAda

13 November 2000 SIGAda WWW 90

© Currie Colket, Brad Balfour, John McCormick, Clyde Roby, & David Wheeler for ACM SIGAda

What is AdaCGI?

• Ada Library implementing the“Common Gateway Interface” (CGI)

– CGI is the most common interface for web-enabled programs (“web apps”)

– CGI is language & platform neutral

• Permits development of cross-platform web-enabled Ada programs

• http://www.dwheeler.com/adacgi

Page 91: Introduction to Web Technologies for Effective ... · Introduction to Web Technologies for Effective Dissemination of Information 13 November 2000 SIGAda 2000 Mr. Currie Colket SIGAda

13 November 2000 SIGAda WWW 91

© Currie Colket, Brad Balfour, John McCormick, Clyde Roby, & David Wheeler for ACM SIGAda

CGI: General Concept (1 of 2)

Web Browser(Client)

Web Server

Web Program/Application

HTTP

CGI

1

(2)

3

4

(5)

6

Page 92: Introduction to Web Technologies for Effective ... · Introduction to Web Technologies for Effective Dissemination of Information 13 November 2000 SIGAda 2000 Mr. Currie Colket SIGAda

13 November 2000 SIGAda WWW 92

© Currie Colket, Brad Balfour, John McCormick, Clyde Roby, & David Wheeler for ACM SIGAda

CGI: General Concept (2 of 2)

• When CGI is used, the following occurs:1. Web browser sends request to web server2. Web server determines that it must start web application; determines

which one & starts it3. Web application starts, loads data sent by web server (primarily as

keys and their values; keys can duplicate)4. Web application responds (via stdout), with a header (saying what it’s

replying) followed by data5. Web application exits (quits) once done6. Web server passes this data on to user’s browser

Page 93: Introduction to Web Technologies for Effective ... · Introduction to Web Technologies for Effective Dissemination of Information 13 November 2000 SIGAda 2000 Mr. Currie Colket SIGAda

13 November 2000 SIGAda WWW 93

© Currie Colket, Brad Balfour, John McCormick, Clyde Roby, & David Wheeler for ACM SIGAda

CGI Alternatives

• FastCGI– Keeps web app alive (instead of restarting per request)– (+) Better performance (eliminates startup)– (-) More work developing app (must reset all state)– (-) Less robust (app must survive many requests)

• Server-specific (proprietary) APIs– (+) Even better performance (eliminates startup & IPC)– (-) Lock-in to a particular web server– (-) Even less robust (error may take down server)

Page 94: Introduction to Web Technologies for Effective ... · Introduction to Web Technologies for Effective Dissemination of Information 13 November 2000 SIGAda 2000 Mr. Currie Colket SIGAda

13 November 2000 SIGAda WWW 94

© Currie Colket, Brad Balfour, John McCormick, Clyde Roby, & David Wheeler for ACM SIGAda

AdaCGI Alternatives

• Doug Smith’s WebAda CGI– Derived from an old version of AdaCGI– (+) generic iterators, can remove keys, re-parser– (-) no cookies, complex use, buggy decoders, little doc, unmaintained– We’ve agreed that I’ll remerge his into mine (in time)– www.adasmith.com/webada/source

• Binding to C (ugh)• Un-CGI

– Converts CGI data to environment vars “WWW_name”– No cookies, multivalue keys ambiguous, slow, ugh

Page 95: Introduction to Web Technologies for Effective ... · Introduction to Web Technologies for Effective Dissemination of Information 13 November 2000 SIGAda 2000 Mr. Currie Colket SIGAda

13 November 2000 SIGAda WWW 95

© Currie Colket, Brad Balfour, John McCormick, Clyde Roby, & David Wheeler for ACM SIGAda

Why use Ada for Web Apps?

• Excellent Run-Time Performance– better than interpreters (Perl), can be > typical JVM– CGI low performance, so relevant iff compute-bound

• Excellent compile-time checking• Highly readable (especially vs. Perl)• Increased security over C/C++ (bounds checking)• Prefer Ada• Have existing Ada applications

Page 96: Introduction to Web Technologies for Effective ... · Introduction to Web Technologies for Effective Dissemination of Information 13 November 2000 SIGAda 2000 Mr. Currie Colket SIGAda

13 November 2000 SIGAda WWW 96

© Currie Colket, Brad Balfour, John McCormick, Clyde Roby, & David Wheeler for ACM SIGAda

Weaknesses of Ada forWeb Apps

• Wordiness (not best for short scripts)• Less convenient string handling• Regular expressions not built-in

– Can use GNAT’s library, but fewer capabilities and can’t optimize like Perl

• Fewer web-app-specific and related support libraries

• Often, must separately install Ada library

Page 97: Introduction to Web Technologies for Effective ... · Introduction to Web Technologies for Effective Dissemination of Information 13 November 2000 SIGAda 2000 Mr. Currie Colket SIGAda

13 November 2000 SIGAda WWW 97

© Currie Colket, Brad Balfour, John McCormick, Clyde Roby, & David Wheeler for ACM SIGAda

AdaCGI License

• AdaCGI is free, free software, open source• Open Source License: LGPL + 2 clauses:

– “GNAT clause”: don’t need to distribute separate object files– Web users must be able to get and redistribute your version of

the AdaCGI library

• Can use to develop proprietary programs, but the AdaCGI library must stay open

Page 98: Introduction to Web Technologies for Effective ... · Introduction to Web Technologies for Effective Dissemination of Information 13 November 2000 SIGAda 2000 Mr. Currie Colket SIGAda

13 November 2000 SIGAda WWW 98

© Currie Colket, Brad Balfour, John McCormick, Clyde Roby, & David Wheeler for ACM SIGAda

AdaCGI Basics

• “with CGI”: initialization autoloads data• Two ways to access CGI data:

– an associative array (given key & optional key count, returns value)

– indexed sequence (given index, =>key or value)

• Call Put_CGI_Header to start returning data– by default, to return HTML

• Then send results (HTML?) to standard out• Use String or Unbounded_String directly

Page 99: Introduction to Web Technologies for Effective ... · Introduction to Web Technologies for Effective Dissemination of Information 13 November 2000 SIGAda 2000 Mr. Currie Colket SIGAda

13 November 2000 SIGAda WWW 99

© Currie Colket, Brad Balfour, John McCormick, Clyde Roby, & David Wheeler for ACM SIGAda

“Minimal” Web App Example

with CGI, Text_IO; use CGI, Text_IO;procedure Minimal isbegin

Put_CGI_Header; -- We will reply with a generated HTML document.-- Output <HTML><HEAD>….</HEAD><BODY>:Put_HTML_Head("Minimal Form Demonstration”);if CGI.Input_Received then -- Check if input was received.Put_Variables; -- Input received; show all variable values.

else-- No input received; reply with a simple HTML form.Put_Line("<FORM METHOD=POST>What's your Name?<INPUT NAME=""name""><INPUT TYPE=""submit""></FORM>");

end if;Put_HTML_Tail; -- End HTML doc, sending </BODY></HTML>

end Minimal;

Page 100: Introduction to Web Technologies for Effective ... · Introduction to Web Technologies for Effective Dissemination of Information 13 November 2000 SIGAda 2000 Mr. Currie Colket SIGAda

13 November 2000 SIGAda WWW 100

© Currie Colket, Brad Balfour, John McCormick, Clyde Roby, & David Wheeler for ACM SIGAda

Debugging/Testing aWeb Program

• For debugging & test scripts, can start directly:– setenv REQUEST_METHOD GET– setenv QUERY_STRING key1=value1&key2=...– compile, link, run (“./minimal”)

• Output should look like:

Content-type: text/html

<HTML><HEAD><TITLE>Minimal Form Demonstration</TITLE></HEAD><BODY><FORM METHOD=POST>What’s your Name?<INPUT NAME="username"><INPUT TYPE="submit"></FORM></BODY></HTML>

Page 101: Introduction to Web Technologies for Effective ... · Introduction to Web Technologies for Effective Dissemination of Information 13 November 2000 SIGAda 2000 Mr. Currie Colket SIGAda

13 November 2000 SIGAda WWW 101

© Currie Colket, Brad Balfour, John McCormick, Clyde Roby, & David Wheeler for ACM SIGAda

Installing a Web Program

• To really use it, set up with web server, e.g.:– su– cp minimal /home/httpd/cgi-bin

• Run– http://localhost/cgi-bin/minimal– http://localhost/cgi-bin/minimal?

name=David%20Wheeler&[email protected]

• Odd problems? Try Put_Variables

Page 102: Introduction to Web Technologies for Effective ... · Introduction to Web Technologies for Effective Dissemination of Information 13 November 2000 SIGAda 2000 Mr. Currie Colket SIGAda

13 November 2000 SIGAda WWW 102

© Currie Colket, Brad Balfour, John McCormick, Clyde Roby, & David Wheeler for ACM SIGAda

Get vs. Post

• CGI supports two sub-protocols– Get: data can be included in URLs– Post: data can be voluminous

• AdaCGI supports both, merging them– Can use either subprotocol at any time– API hides difference; access data the same way– If you need to know, AdaCGI will say which, but using this

difference is not recommended

Page 103: Introduction to Web Technologies for Effective ... · Introduction to Web Technologies for Effective Dissemination of Information 13 November 2000 SIGAda 2000 Mr. Currie Colket SIGAda

13 November 2000 SIGAda WWW 103

© Currie Colket, Brad Balfour, John McCormick, Clyde Roby, & David Wheeler for ACM SIGAda

Cookies

• Cookies are small pieces of data– Sent by the server– Stored by the client and sent back when the client re-

communicates with the server

• Often used in e-commerce (the cookie is an ID indicating the transaction we’re in)

• Potential privacy risk: Permits servers to track users (loss of anonymity)

Page 104: Introduction to Web Technologies for Effective ... · Introduction to Web Technologies for Effective Dissemination of Information 13 November 2000 SIGAda 2000 Mr. Currie Colket SIGAda

13 November 2000 SIGAda WWW 104

© Currie Colket, Brad Balfour, John McCormick, Clyde Roby, & David Wheeler for ACM SIGAda

Security Issues

• CGI data comes from untrusted users– identify legal values, and prohibit anything not meeting the legal

criteria (min, max, patterns, etc.)– don’t assume that these values are trustworthy (“price”)– in particular, never trust a filename or directory name– you may need to escape all metacharacters– NIL character

• See the many documents available on CGI programming security

Page 105: Introduction to Web Technologies for Effective ... · Introduction to Web Technologies for Effective Dissemination of Information 13 November 2000 SIGAda 2000 Mr. Currie Colket SIGAda

13 November 2000 SIGAda WWW 105

© Currie Colket, Brad Balfour, John McCormick, Clyde Roby, & David Wheeler for ACM SIGAda

Additions in Version 1.5

• AdaCGI Version 1.5 added the following:– Cookie_Count– HTML_Encode: & becomes &amp;– URL_Encode/Decode: % becomes %25– Generic Iterators– Key_Value_Exists: Has Key been given Value?

WebA

daInspired

Page 106: Introduction to Web Technologies for Effective ... · Introduction to Web Technologies for Effective Dissemination of Information 13 November 2000 SIGAda 2000 Mr. Currie Colket SIGAda

13 November 2000 SIGAda WWW 106

© Currie Colket, Brad Balfour, John McCormick, Clyde Roby, & David Wheeler for ACM SIGAda

Important Limitations

• No separate IndexedKey ADT/OO type for parameters & cookies

– parse, modify, remove, save, reload

• Doesn’t support file uploads– Rarely used in practice

• Only supports GET/POST commands– Others useful for web maintenance (WebDAV)

Page 107: Introduction to Web Technologies for Effective ... · Introduction to Web Technologies for Effective Dissemination of Information 13 November 2000 SIGAda 2000 Mr. Currie Colket SIGAda

13 November 2000 SIGAda WWW 107

© Currie Colket, Brad Balfour, John McCormick, Clyde Roby, & David Wheeler for ACM SIGAda

Less Important Limitations

• Auto-initializes data on startup• Doesn’t support FastCGI

– Usually implemented separately anyway

• Doesn’t auto-gen form with initial values– Can be done with a higher-level package

• String/Unbounded_String awkward• Some subprogram names too similar• Could be broken into multiple packages (?!)

Page 108: Introduction to Web Technologies for Effective ... · Introduction to Web Technologies for Effective Dissemination of Information 13 November 2000 SIGAda 2000 Mr. Currie Colket SIGAda

13 November 2000 SIGAda WWW 108

© Currie Colket, Brad Balfour, John McCormick, Clyde Roby, & David Wheeler for ACM SIGAda

AdaCGI Spec: Get-by-key

• function Value(Key : in String;Index : in Positive := 1;Required : in Boolean := False)

return Unbounded_String;• function Key_Exists(Key : in String;

Index : in Positive := 1)return Boolean;

• function Key_Count(Key : in String)return Natural;

Page 109: Introduction to Web Technologies for Effective ... · Introduction to Web Technologies for Effective Dissemination of Information 13 November 2000 SIGAda 2000 Mr. Currie Colket SIGAda

13 November 2000 SIGAda WWW 109

© Currie Colket, Brad Balfour, John McCormick, Clyde Roby, & David Wheeler for ACM SIGAda

AdaCGI Spec: Get-by-Position

• function Argument_Count return Natural;• function Key(Position : in Positive) return String;• function Value(Position : in Positive)

return String;

Page 110: Introduction to Web Technologies for Effective ... · Introduction to Web Technologies for Effective Dissemination of Information 13 November 2000 SIGAda 2000 Mr. Currie Colket SIGAda

13 November 2000 SIGAda WWW 110

© Currie Colket, Brad Balfour, John McCormick, Clyde Roby, & David Wheeler for ACM SIGAda

AdaCGI Spec: Starting Output

• procedure Put_CGI_Header(Header : in String := "Content-type: text/html");

– Puts CGI Header to Current_Output, followed by two carriage returns.– This header determines the program’s reply type.– Default is to return a generated HTML document.– Warning: Make calls to Set_Cookie before calling this procedure!

Page 111: Introduction to Web Technologies for Effective ... · Introduction to Web Technologies for Effective Dissemination of Information 13 November 2000 SIGAda 2000 Mr. Currie Colket SIGAda

13 November 2000 SIGAda WWW 111

© Currie Colket, Brad Balfour, John McCormick, Clyde Roby, & David Wheeler for ACM SIGAda

AdaCGI Spec:Generating HTML Basics

• procedure Put_HTML_Head(Title : in String;Mail_To : in String := "");

– Puts an HTML header with title “Title”: <HTML><HEAD><TITLE> _Title_ </TITLE><LINK REV="made" HREF="mailto: _Mail_To_ "></HEAD><BODY>

• procedure Put_HTML_Heading(Title : in String;Level : in Positive);

– Put an HTML heading, e.g. <H1>Title</H1>.

• procedure Put_HTML_Tail;– P ut HTML tail, I.e.: </BODY></HTML>

Page 112: Introduction to Web Technologies for Effective ... · Introduction to Web Technologies for Effective Dissemination of Information 13 November 2000 SIGAda 2000 Mr. Currie Colket SIGAda

13 November 2000 SIGAda WWW 112

© Currie Colket, Brad Balfour, John McCormick, Clyde Roby, & David Wheeler for ACM SIGAda

AdaCGI Spec: Watch Out, Excessively Similar Names!

• Put_CGI_Header– Content-type: text/html

• Put_HTML_Head – <HTML><HEAD>…</HEAD><BODY>

• Put_HTML_Heading– <H1>…</H1>

Page 113: Introduction to Web Technologies for Effective ... · Introduction to Web Technologies for Effective Dissemination of Information 13 November 2000 SIGAda 2000 Mr. Currie Colket SIGAda

13 November 2000 SIGAda WWW 113

© Currie Colket, Brad Balfour, John McCormick, Clyde Roby, & David Wheeler for ACM SIGAda

AdaCGI Spec:Generating HTML Miscellania

• procedure Put_Error_Message(Message : in String);– This Puts an HTML_Head, an HTML_Heading, the message, and an

HTML_Tail.– Call "Put_CGI_Header" before calling this.

• procedure Put_Variables;– Put to Current_Output all of the CGI variables as an HTML-formatted

String.

Page 114: Introduction to Web Technologies for Effective ... · Introduction to Web Technologies for Effective Dissemination of Information 13 November 2000 SIGAda 2000 Mr. Currie Colket SIGAda

13 November 2000 SIGAda WWW 114

© Currie Colket, Brad Balfour, John McCormick, Clyde Roby, & David Wheeler for ACM SIGAda

AdaCGI Spec: Miscellaneous

• function Input_Received return Boolean• function My_URL return String;• function Get_Environment(Variable : in String) return String;• Line_Count, Line_Count_of_Value, Line, Value_of_Line:

handle multi-line values

Page 115: Introduction to Web Technologies for Effective ... · Introduction to Web Technologies for Effective Dissemination of Information 13 November 2000 SIGAda 2000 Mr. Currie Colket SIGAda

13 November 2000 SIGAda WWW 115

© Currie Colket, Brad Balfour, John McCormick, Clyde Roby, & David Wheeler for ACM SIGAda

AdaCGI Spec: Cookies(new feature of AdaCGI 1.4)

• Set_Cookie(Key : String;Value : String;Expires : String := "";Path: String := …; Domain: String := …;Secure: Boolean := False );– Sets a cookie value; call this BEFORE calling Put_CGI_Header.

• function Cookie_Value(Key : in String;Index : in Positive := 1; Required : in Boolean := False)

return Unbounded_String;• function Cookie_Value(Position : in Positive) return String;

Page 116: Introduction to Web Technologies for Effective ... · Introduction to Web Technologies for Effective Dissemination of Information 13 November 2000 SIGAda 2000 Mr. Currie Colket SIGAda

13 November 2000 SIGAda WWW 116

© Currie Colket, Brad Balfour, John McCormick, Clyde Roby, & David Wheeler for ACM SIGAda

“Search” Example: Top

with CGI, …; use CGI, …;procedure Search is ...begin

Put_CGI_Header;if Key_Exists("query") and Key_Exists("file") then

Process_Query;else

Generate_Blank_Form;end if;Put_HTML_Tail;

end Search;

Page 117: Introduction to Web Technologies for Effective ... · Introduction to Web Technologies for Effective Dissemination of Information 13 November 2000 SIGAda 2000 Mr. Currie Colket SIGAda

13 November 2000 SIGAda WWW 117

© Currie Colket, Brad Balfour, John McCormick, Clyde Roby, & David Wheeler for ACM SIGAda

“Search” Example:Generate_Blank_Form (1 of 4)

Put_HTML_Head("Text Search Form");Put_HTML_Heading("Text Search Form", 1);Put_Line("<P>You may search for a text phrase from any of the given files.<P><FORM METHOD=POST>");

Put_Line("What do you want to search for:<P>");declare

Query_String : constant String := CGI.Value ("query");File_Value : constant String := CGI.Value ("file");

beginPut_Line("<INPUT NAME=""query"" SIZE=40");if Query_String /= "" then - - if query set, use as default

Put(" VALUE="); Put(String’(Value("query")));end if;Put_Line("><P>");

Page 118: Introduction to Web Technologies for Effective ... · Introduction to Web Technologies for Effective Dissemination of Information 13 November 2000 SIGAda 2000 Mr. Currie Colket SIGAda

13 November 2000 SIGAda WWW 118

© Currie Colket, Brad Balfour, John McCormick, Clyde Roby, & David Wheeler for ACM SIGAda

“Search” Example:Generate_Blank_Form (2 of 4)

- - if file set, then save it in form & display its value.- - otherwise, let the user select the file to search.if Key_Exists("file") and File_Value /= "" then

Put("<INPUT TYPE=""hidden"" NAME=""file"" VALUE=""");Put(String’(Value("file") & """>"));Put("<P>You will be searching file <I>");Put(String’(Value("file")));Put_Line("</I><P>");

elsePut_Line("Where do you want to search?<P>");Put_Select_List;

end if;end; -- declare block

Page 119: Introduction to Web Technologies for Effective ... · Introduction to Web Technologies for Effective Dissemination of Information 13 November 2000 SIGAda 2000 Mr. Currie Colket SIGAda

13 November 2000 SIGAda WWW 119

© Currie Colket, Brad Balfour, John McCormick, Clyde Roby, & David Wheeler for ACM SIGAda

“Search” Example:Generate_Blank_Form (3 of 4)

- - if “casesensitive” set, save in form invisibly, else ask userif Key_Exists("casesensitive") thenPut_Line(String’("<INPUT TYPE=""hidden"" NAME=""casesensitive""

VALUE=""" & Value("casesensitive") & """>"));elsePut_Line("Do you want this search to be case-sensitive?");Put_Line(”<DL><DD><INPUT TYPE=""radio""

NAME=""casesensitive" " VALUE=""yes""> <I>Yes.</I>");Put_Line("<DD><INPUT TYPE=""radio"" NAME=""casesensitive""

VALUE=""no"" CHECKED> <I>No.</I>");Put_Line("</DL>");

end if;

Page 120: Introduction to Web Technologies for Effective ... · Introduction to Web Technologies for Effective Dissemination of Information 13 November 2000 SIGAda 2000 Mr. Currie Colket SIGAda

13 November 2000 SIGAda WWW 120

© Currie Colket, Brad Balfour, John McCormick, Clyde Roby, & David Wheeler for ACM SIGAda

“Search” Example:Generate_Blank_Form (4 of 4)

- - Generate submit and reset buttons for formPut_Line("<P> <INPUT TYPE=""submit"" VALUE=""Submit Query"">");Put_Line("<INPUT TYPE=""reset""> ");Put_Line("</FORM>");

Page 121: Introduction to Web Technologies for Effective ... · Introduction to Web Technologies for Effective Dissemination of Information 13 November 2000 SIGAda 2000 Mr. Currie Colket SIGAda

13 November 2000 SIGAda WWW 121

© Currie Colket, Brad Balfour, John McCormick, Clyde Roby, & David Wheeler for ACM SIGAda

“Search” Example:Process_Query (1 of 2)

procedure Process_Query isUser_File_To_Search : constant String := CGI.Value("file");File_To_Search : constant String := - - Don’t trust user to set this!

Real_File_Name(U(User_File_To_Search));Pattern : constant String := Value("query");Case_Sensitive : Boolean := False;Case_Sensitivity : constant String := Value ("casesensitive");

beginPut_HTML_Head("Query Result");Put_HTML_Heading("Query Result", 1);Put_Line(String’("<P>The search for <I>" & Value("query") & "</I>"));Put_Line(String’(" in file <I>" & Value("file") & "</I>"));

Page 122: Introduction to Web Technologies for Effective ... · Introduction to Web Technologies for Effective Dissemination of Information 13 November 2000 SIGAda 2000 Mr. Currie Colket SIGAda

13 November 2000 SIGAda WWW 122

© Currie Colket, Brad Balfour, John McCormick, Clyde Roby, & David Wheeler for ACM SIGAda

“Search” Example:Process_Query (2 of 2)

if Case_Sensitivity = "yes" thenCase_Sensitive := True;Put_Line(" in a case-sensitive manner");

end if;

Put_Line("produced the following result:<P>");Put_Line("<PRE>");Flush;Put_Matches(File_To_Search, Pattern, Case_Sensitive);Put_Line("</PRE>");

end Process_Query;

Page 123: Introduction to Web Technologies for Effective ... · Introduction to Web Technologies for Effective Dissemination of Information 13 November 2000 SIGAda 2000 Mr. Currie Colket SIGAda

13 November 2000 SIGAda WWW 123

© Currie Colket, Brad Balfour, John McCormick, Clyde Roby, & David Wheeler for ACM SIGAda

In Conclusion...

• You can make web apps in Ada!– Get it at http://www.dwheeler.com/adacgi– EMailing: [email protected] message body

“subscribe”– Linux packaging: http://www.gnuada.org

• Use the current version of AdaCGI– Currently version 1.5

• Patches welcome• Go forth & have fun!

Page 124: Introduction to Web Technologies for Effective ... · Introduction to Web Technologies for Effective Dissemination of Information 13 November 2000 SIGAda 2000 Mr. Currie Colket SIGAda

13 November 2000 SIGAda WWW 124

© Currie Colket, Brad Balfour, John McCormick, Clyde Roby, & David Wheeler for ACM SIGAda

Introduction to XML

Currie ColketMITRE

Page 125: Introduction to Web Technologies for Effective ... · Introduction to Web Technologies for Effective Dissemination of Information 13 November 2000 SIGAda 2000 Mr. Currie Colket SIGAda

13 November 2000 SIGAda WWW 125

© Currie Colket, Brad Balfour, John McCormick, Clyde Roby, & David Wheeler for ACM SIGAda

Motivation for XML

HTML Dumbs Down

Book

Author Date ISBN PublisherTitle

<html>...<P>Title: Programming in Ada95 (Second Edition)<Br>Author: John Barnes<Br>Date: July, 1998 <Br>ISBN: 0-201-34293-6 <Br>Publisher: Addison-Wesley <Br> </P>... </html>

Useful for Presentation onlyLimited Content accessibility

Page 126: Introduction to Web Technologies for Effective ... · Introduction to Web Technologies for Effective Dissemination of Information 13 November 2000 SIGAda 2000 Mr. Currie Colket SIGAda

13 November 2000 SIGAda WWW 126

© Currie Colket, Brad Balfour, John McCormick, Clyde Roby, & David Wheeler for ACM SIGAda

What is XML• Produced by W3C as recommendation; voted on by Consortium members

http://www.w3.org/XML/• XML is a method for putting structured data in a text file• XML looks a bit like HTML but isn't HTML

tags delimit data; in HTML tags communicate presentation• XML is text, but isn't meant to be read

strict rules; a forgotten tag makes the entire file useless• XML is a family of specifications

XML 1.0 - specifies tags and attributes, and Document Type Definition (DTD) guidelinesXlink - describes a standard way to add links to an XML file

Xpointers and Xfragments point to portions of an XML fileCSS - Cascading Style Sheets provide mechanism to present content documents XSL - Extensible Style Language is the advanced language for expressing style sheetsXSLT - Transformations (XSLT) is the semantics for transforming one

XML document into anotherDOM - Document Object Model allows programs and scripts to dynamically access

and update the content, structure and style of documentsXML Namespaces - specifies how you can associate a URL with every single tag

and attribute in an XML documentRDF - Resource Description Framework (RDF) is a foundation for processing metadata;

it provides interoperability between applications that exchange data on the Web. Xschema - Specifications help developers define their own schemas

and many more

Page 127: Introduction to Web Technologies for Effective ... · Introduction to Web Technologies for Effective Dissemination of Information 13 November 2000 SIGAda 2000 Mr. Currie Colket SIGAda

13 November 2000 SIGAda WWW 127

© Currie Colket, Brad Balfour, John McCormick, Clyde Roby, & David Wheeler for ACM SIGAda

XML Interfaces

HTMLBrowserUser 1

“Produce content once and output in many different formats.”

DTD

XMLApplicationProcessing

XML

Validation

XML Parsere.g., msxml

Other XMLApps

DOM

HTMLBrowserUser 2

XSL1 XSL

2

Outputfor

Printer

XSL3

DatabaseQuery

Application

From library of common DTDs

Page 128: Introduction to Web Technologies for Effective ... · Introduction to Web Technologies for Effective Dissemination of Information 13 November 2000 SIGAda 2000 Mr. Currie Colket SIGAda

13 November 2000 SIGAda WWW 128

© Currie Colket, Brad Balfour, John McCormick, Clyde Roby, & David Wheeler for ACM SIGAda

XML Schema Example

Book*

Author+ Date ISBN Publisher

Book_Catalogue

Title

Month? Year

Note: “*” means “zero or many”“?” means “is optional ”“+” means “one or more”

Attributes for each book:Category - autobiography/non-fiction/fiction In_Stock - yes/no (no default)Reviewer - null default

Page 129: Introduction to Web Technologies for Effective ... · Introduction to Web Technologies for Effective Dissemination of Information 13 November 2000 SIGAda 2000 Mr. Currie Colket SIGAda

13 November 2000 SIGAda WWW 129

© Currie Colket, Brad Balfour, John McCormick, Clyde Roby, & David Wheeler for ACM SIGAda

XML DTD Example

<!-- A book catalogue contains zero or more books --><!ELEMENT Book_Catalogue (Book)*><!-- A Book has a Title, one or more Authors, a Date, an ISBN, and a Publisher --><!ELEMENT Book (Title, Author+, Date, ISBN, Publisher)><!-- A Book has three attributes - Category, In_Stock, and Reviewer. --> <!-- Category must be either “autobiography”, “non-fiction”, or “fiction”. --> <!-- A value must be supplied whenever a Book element is used within a document. --> <!-- In_Stock can be either “yes” or “no”. If not supplied it defaults to “no”. --><!-- Reviewer contains the name of the reviewer. It defaults to "" if not supplied --><!ATTLIST Book

Category (autobiography | non-fiction | fiction) #REQUIREDIn_Stock (yes | no) “no”Reviewer CDATA “” >

<!ELEMENT Title (#PCDATA)><!ELEMENT Author (#PCDATA)><!-- A Date may have a Month. It must have a Year. --><!ELEMENT Date (Month?, Year)><!ELEMENT ISBN (#PCDATA)><!ELEMENT Publisher (#PCDATA)><!ELEMENT Month (#PCDATA)><!ELEMENT Year (#PCDATA)>

Book_Catalogue.dtd

Page 130: Introduction to Web Technologies for Effective ... · Introduction to Web Technologies for Effective Dissemination of Information 13 November 2000 SIGAda 2000 Mr. Currie Colket SIGAda

13 November 2000 SIGAda WWW 130

© Currie Colket, Brad Balfour, John McCormick, Clyde Roby, & David Wheeler for ACM SIGAda

XML Code Example<xml version=“1.0”><!DOCTYPE Book_Catalogue SYSTEM “http://www.DTD_host.org/Book_Catalogue.dtd”><Book_Catalogue>

<Book Category = “non-fiction”In_Stock = “yes”Reviewer = “Pat Rogers”>

<Title>Programming in Ada95 (Second Edition)</Title><Author>John Barnes</Author><Date>

<Year>1998</Year></Date><ISBN>0-201-34293-6</ISBN><Publisher>Addison-Wesley</Publisher>

</Book><Book

Category = “non-fiction”In_Stock = “no”Reviewer = “Ted Baker”>

<Title>Ada 95: Problem Solving and Program Design, 3rd Edition</Title><Author>Michael Feldman</Author><Author>Elliot Koffman</Author><Date>

<Month>July</Month><Year>1999</Year>

</Date><ISBN>0-201-36123-X</ISBN><Publisher>Addison-Wesley</Publisher>

</Book></Book_Catalogue>

Book_Catalogue.xml

Need to suckin the DTD file

Page 131: Introduction to Web Technologies for Effective ... · Introduction to Web Technologies for Effective Dissemination of Information 13 November 2000 SIGAda 2000 Mr. Currie Colket SIGAda

13 November 2000 SIGAda WWW 131

© Currie Colket, Brad Balfour, John McCormick, Clyde Roby, & David Wheeler for ACM SIGAda

What is XHTML● Produced by W3C as recommendation; voted on by Consortium members

http://www.w3.org/TR/xhtml1/● Reformulation of HTML 4.0 in XML 1.0● XHTML is intended to be used in conjunction with tags from other X3 tag

sets , so that in principle, you can combine XHTML tags with:● XML tags● Scalable Vector Graphics (SVG) tags● Synchronized Multimedia Integration Language (SMIL) tags● Mathematical Markup Language (MathML) tags● etc.

● XML syntax is used for XHTML, for example:● Make tags case-sensitive ● Include end tags e.g. </p> and </li> ● Add a / to empty tags, e.g. <br /> and <hr /> ● Quote all attribute values, e.g. <img src="duck.jpg" /> ● Use lower-case for tags and attributes

● Old browsers can render XHTML 1.0 if simple guidelines are followed. ● New specification for FORMS based on Data, Logic, and Presentation● New specification for Modules to subset and extend XHTML

Page 132: Introduction to Web Technologies for Effective ... · Introduction to Web Technologies for Effective Dissemination of Information 13 November 2000 SIGAda 2000 Mr. Currie Colket SIGAda

13 November 2000 SIGAda WWW 132

© Currie Colket, Brad Balfour, John McCormick, Clyde Roby, & David Wheeler for ACM SIGAda

XML Observations/Opinions

● Technology in early adopter phase - Too early for true lessons learned

● Phenomenal Excitement: XML is the latest “web thing”● Low Barriers to Entry - Incremental development, low

investment requirements● Significant Industry Offerings in products and tools -

Reaching critical massAlready internet output for Word in Microsoft Office instead of HTML

● Cross Disciplines- Unifying framework for exchanging data

● Requires Tools - Specialized tools needed to develop and use XML; not supported by many browsers

● HTML Still Viable - XML will not replace HTML for basic presentation of information for many years, if ever

Page 133: Introduction to Web Technologies for Effective ... · Introduction to Web Technologies for Effective Dissemination of Information 13 November 2000 SIGAda 2000 Mr. Currie Colket SIGAda

13 November 2000 SIGAda WWW 133

© Currie Colket, Brad Balfour, John McCormick, Clyde Roby, & David Wheeler for ACM SIGAda

Summary• Introduction to WWW and SIGAda Home Page as Notional Example • Introduction to HTML and use of Netscape Composer • Effective Design Strategies Appropriate to Disseminating Information• Tools to Manage Development of Web Pages• Introduction to Ada CGI• Using ACM WWW and Maillist Facilities • Introduction to XML

You should now be able to:• Use simple web-authoring tools• Develop your own Home Page• Tailor it to effectively communicate to your audience• Establish Home Page on ACM host• Use simple web-posting tools• Use simple web-verification tools• Establish maillists for your activity

We are looking for volunteers to “own” portions of the ACM SIGAda Home PagePlease contact us if you are interested!