55
Introduction to Programming the WWW I CMSC 10100-1 Summer 2004 Lecture 3

Introduction to Programming the WWW I CMSC 10100-1 Summer 2004 Lecture 3

Embed Size (px)

Citation preview

Page 1: Introduction to Programming the WWW I CMSC 10100-1 Summer 2004 Lecture 3

Introduction to Programming the WWW I

Introduction to Programming the WWW I

CMSC 10100-1

Summer 2004

Lecture 3

Page 2: Introduction to Programming the WWW I CMSC 10100-1 Summer 2004 Lecture 3

2

Today’s TopicsToday’s Topics

• Linux introduction

• List, images, hyperlinks, image maps

Page 3: Introduction to Programming the WWW I CMSC 10100-1 Summer 2004 Lecture 3

3

ReminderReminder

• Hw1 released and due next Wednesday

Page 4: Introduction to Programming the WWW I CMSC 10100-1 Summer 2004 Lecture 3

4

Introduction to LinuxIntroduction to Linux

• Very useful in networking, Web servers

• Not so easy to begin learning as Win/Mac

• We’ll cover some basics directory structure and navigation copying, deleting files permissions getting files from home or lab to the right

place on the network

Page 5: Introduction to Programming the WWW I CMSC 10100-1 Summer 2004 Lecture 3

5

DirectoriesDirectories

• Much like folders in Win/Mac• Directory is hierarchical and organized as tree

structure Different levels are distinguished by “/” Two special directory notations

• “..” denotes the parent directory• “.” denotes the current directory

• You home directory is referred as ~<your cs account> When you log in, you are in your home directory E.g.: My home directory is ~hai and it is same as /home/hai

Page 6: Introduction to Programming the WWW I CMSC 10100-1 Summer 2004 Lecture 3

6

Basic directory commandsBasic directory commands

• The command ls tells you what is in the current directory

• The command pwd tells you what directory you are in

• The command cd followed by a directory name changes your current directory cd ..

• goes “up” one directory in the tree cd

• takes you “home”

Page 7: Introduction to Programming the WWW I CMSC 10100-1 Summer 2004 Lecture 3

7

Creating directoriesCreating directories

• Command: mkdir <directory path&name> All your homework will be turned in to

~<yourhome>/html/cs101/hw<x>, where x is the no of the assignment.

From your home directory, type in • mkdir html (creates the html directory)• cd html (changes to the html directory)• mkdir cs101• cd cs101• mkdir hw1• cd hw1 (you are now “in” the directory for your first

homework assignment)

Page 8: Introduction to Programming the WWW I CMSC 10100-1 Summer 2004 Lecture 3

8

Copying and deleting filesCopying and deleting files

• The commands cp and rm copy and delete files Copy a file

• cp <source> <destination>

• path must be specified for filenamesdefault is current directory

• Example: cp foo.html foo_bak.html

Copy a directory• cp –r <sourcedir> <destdir>

Delete a file/directory• rm <filename/dirname>

Page 9: Introduction to Programming the WWW I CMSC 10100-1 Summer 2004 Lecture 3

9

File/directory permissionsFile/directory permissions

• Type in ls -l This pulls up a listing with more information You should see something like:

The letters on the left are the permissions of each file

More about ls command

drwxr-xr-x 2 hai student 512 May 12 15:48 tcltklib/drwxr-xr-x 2 hai student 512 Jan 16 13:32 temp/-rw-r--r-- 1 hai student 12 Oct 28 2002 test.in

Page 10: Introduction to Programming the WWW I CMSC 10100-1 Summer 2004 Lecture 3

10

Permissions cont’d.Permissions cont’d.

• This information tells who can read write execute

• The first entry is d or - (is it a directory?)

• The others list the permissions for you (the owner) your “group” the “world” (everybody else)

Page 11: Introduction to Programming the WWW I CMSC 10100-1 Summer 2004 Lecture 3

11

Reading the permissionsReading the permissions

• Columns 2 through 4 are for you• Columns 5 through 7 are for your group• Columns 8 through 10 are for the world• A letter means you have that permission• A dash means you don’t• Examples:

-rw-r--r-- drwxr-xr-x

Page 12: Introduction to Programming the WWW I CMSC 10100-1 Summer 2004 Lecture 3

12

Some informationSome information

• Directories must be executable and readable to be entered

• You must have world read permissions set for the grader to grade for the world to browse

Page 13: Introduction to Programming the WWW I CMSC 10100-1 Summer 2004 Lecture 3

13

How do I set permissions?How do I set permissions?

• Use the command:chmod <permissions> <filename>

• Where <permissions> is a three digit number encoding the new permissions The first digit is for you, the second for your

group, and the third for the world

Page 14: Introduction to Programming the WWW I CMSC 10100-1 Summer 2004 Lecture 3

14

What are the numbers?What are the numbers?

• Each number is 0 through 7 that is sum of three read: 4 write: 2 execute: 1

• Some important numbers: 7: read, write, execute 6: read, write, not execute 5: read, execute, but not write 4: read but neither execute nor write 0: neither read, write, nor execute

Page 15: Introduction to Programming the WWW I CMSC 10100-1 Summer 2004 Lecture 3

15

ExamplesExamples

• chmod 644 myfile.html Allows you to read and write and the world to read but

not write Use this for all your Web pages

• chmod 755 html/ Do this from your home directory Allows you to read, write, execute Allows everyone else to enter, read but not write Use this for all your homework directories

Page 16: Introduction to Programming the WWW I CMSC 10100-1 Summer 2004 Lecture 3

16

Another exampleAnother example

• chmod 600 myfile.html Gives you read, write Shuts off file to the world

Page 17: Introduction to Programming the WWW I CMSC 10100-1 Summer 2004 Lecture 3

17

Using a Linux EditorUsing a Linux Editor

• Some popular editors: emacs, vi, pico, etc

• Example of using pico In command line, type pico Type in the codes of the html file Type control-o and then a file name to save to a

file Type control-x to exit Check other pico commands online

• Here is a list

Page 18: Introduction to Programming the WWW I CMSC 10100-1 Summer 2004 Lecture 3

18

ListsLists

• One advanced text based structure and often used to Set out big ideas Display the table of contents List links, etc

• Three kinds of lists: Ordered Unordered Definition lists

Page 19: Introduction to Programming the WWW I CMSC 10100-1 Summer 2004 Lecture 3

19

Ordered listsOrdered lists

• Used to specify a sequence of things top-ten list set of instructions outline

• Begun and ended with <ol></ol>• Each element in the list is <li></li>• Example:

Orderedlist1.html

Page 20: Introduction to Programming the WWW I CMSC 10100-1 Summer 2004 Lecture 3

20

Attributes for ordered listsAttributes for ordered lists

• We can set two attributes The type of symbols used

• Arabic numerals (type=1, default)• capital or lower case letters (type=A or type=a)• capital or lower case Roman numerals (type=I or type=i)

The start value

• Example: Orderedlist2.html

• Note: these attributes can be controlled better through CSS

Page 21: Introduction to Programming the WWW I CMSC 10100-1 Summer 2004 Lecture 3

21

Unordered listsUnordered lists

• Used for more general collection of items list of links ingredients for a recipe rather than

instructions

• Attribute type could be: disc, circle, square

• Example unorderedlist.html

Page 22: Introduction to Programming the WWW I CMSC 10100-1 Summer 2004 Lecture 3

22

Definition listsDefinition lists

• Used for definitions and long descriptions

• Uses <dl></dl> tag to begin and end list

• Rather than using <li></li> to denote list items, has terms and definitions <dt></dt> <dd></dd>

• Example: definitionlist.html

Page 23: Introduction to Programming the WWW I CMSC 10100-1 Summer 2004 Lecture 3

23

Nested ListNested List

• Lists can be nested within other lists The indent from the left is cumulative,

however The deeper you go, the thinner the indent

margin will become

• Example: nestlist.html

Page 24: Introduction to Programming the WWW I CMSC 10100-1 Summer 2004 Lecture 3

24

ImagesImages

• Background images

• Inline images specifying a source file flowing text size and other attributes

Page 25: Introduction to Programming the WWW I CMSC 10100-1 Summer 2004 Lecture 3

25

Background imagesBackground images

• Set with the background attribute of body• Can be used along with bgcolor• The picture is tiled to fill the screen

Make sure the tiling looks nice Make sure the image doesn’t conflict with text

• Make the file be small for fast downloads

• Example: backgoundexample.html

Page 26: Introduction to Programming the WWW I CMSC 10100-1 Summer 2004 Lecture 3

26

Inline imagesInline images

• Use the standalone <img> tag with attributes to control: image file to include (required) alternate text if image is not displayed

(required) Border and spacing image alignment within text height and width of image

Page 27: Introduction to Programming the WWW I CMSC 10100-1 Summer 2004 Lecture 3

27

Including the fileIncluding the file

• src attribute specifies the image file and can be: URL for online file (this can be risky!) local file with absolute or relative path

• alt attribute gives alternate text: text-only browser error loading image voice-text converter

• Example: imgexample.html

Page 28: Introduction to Programming the WWW I CMSC 10100-1 Summer 2004 Lecture 3

28

Image alignmentImage alignment

• The align attribute To control over the alignment of images with the

surrounding text since the default alignment is typically ugly

“left” and “right” push image to edge and flow text around it

“bottom”, “top”, “middle” are used if image appears within the text

• Example: image-examples.html Images.html

Page 29: Introduction to Programming the WWW I CMSC 10100-1 Summer 2004 Lecture 3

29

Image border and spacingImage border and spacing

• The border attribute Control the thickness of the border The value is an integer in pixels (default is 0) Useful when rendering image as hyperlink

• The hspace and vspace attributes Specify the number of pixels of extra space to leave

between the image and the text on its left and right sides

• Example: Image-border-spacing.html

Page 30: Introduction to Programming the WWW I CMSC 10100-1 Summer 2004 Lecture 3

30

Resizing the imageResizing the image

• The height and width attributes This affects the size the image appears, not

the size of the file Preserve the aspect ratio Use Photoshop or other tool to create smaller

image file with coarser resolution, etc

• Example: imgexample_resize.html

Page 31: Introduction to Programming the WWW I CMSC 10100-1 Summer 2004 Lecture 3

31

Image File FormatsImage File Formats

• GIF: Graphics Interchange Format

• JPEG: Joint Photographic Experts Group

• PNG: Portable Networks Graphics

Page 32: Introduction to Programming the WWW I CMSC 10100-1 Summer 2004 Lecture 3

32

GIF (Graphics Interchange Format)

GIF (Graphics Interchange Format)

• Uses an adaptive 8-bit color palette 256 colors at most

• Especially suitable for line art and cartoons• Can work well for some photographs• Patent issues

LZW algorithm for image compression

Page 33: Introduction to Programming the WWW I CMSC 10100-1 Summer 2004 Lecture 3

33

GIF (cont’d)GIF (cont’d)

• GIF dithering in photos Example: gifdithering.html

• Image compression is lossless

• Cool features Interlaced GIF Transparent GIF Animated GIF

Page 34: Introduction to Programming the WWW I CMSC 10100-1 Summer 2004 Lecture 3

34

Interlaced GIFs Interlaced GIFs

• Displays images incrementally equals to progressive JPEG example: car-interlaced.gif

• Gives users something to look at while the image is still downloading

• Any GIF image can be converted to an interlaced GIF Tools: photoshop, GiFFY, convert

Page 35: Introduction to Programming the WWW I CMSC 10100-1 Summer 2004 Lecture 3

35

Transparent GIFs Transparent GIFs

• Transparent regions in an image allow the background color or pattern of a Web page to show through

• Any GIF image can be made transparent by specifying one color in the image that defines its

transparent regions

• Examples transparent-background.html transparent-foreground.html

Page 36: Introduction to Programming the WWW I CMSC 10100-1 Summer 2004 Lecture 3

36

Animated GIFs Animated GIFs

• The GIF file format supports cartoon animations

• An animated GIF is stored in a single GIF file

• Use same rule to display an animated GIF

• Tools to create animated GIF images Animagic GIF

• Examples Rolling Star

Traffic Light

Page 37: Introduction to Programming the WWW I CMSC 10100-1 Summer 2004 Lecture 3

37

JPEG (Joint Photographic Experts Group)

JPEG (Joint Photographic Experts Group)

• Uses a fixed 24-bit color palette (millions of colors)

• Especially suitable for high-resolution photographs

• Uses lossy file compression trades image quality for memory savings very good for minimizing bandwidth you control the trade-off when you save the image

• Example: lossy.html Lossy compression only supported by JPEG

Page 38: Introduction to Programming the WWW I CMSC 10100-1 Summer 2004 Lecture 3

38

PNG(Portable Network Graphics)

PNG(Portable Network Graphics)

• W3C free stand-in format for GIF

• Often smaller than GIF

• Lossless (like GIF)

• Does not support animation

Page 39: Introduction to Programming the WWW I CMSC 10100-1 Summer 2004 Lecture 3

39

Thumbnail previews Thumbnail previews

• Use lossy file compression to create a small (light bandwidth) thumbnail version of the original image Usually make the thumbnail sketch a link to a

big sized image (bandwidth intensive) Users can decide if they want to click through

to the original image

• Example thumbnail.html

Page 40: Introduction to Programming the WWW I CMSC 10100-1 Summer 2004 Lecture 3

40

How to make thumbnailsHow to make thumbnails

• Load image in a program (e.g. Photoshop)

• Reduce the image quality under the save options

• Set a small height and width in the page

• Will be covered in the Maclab’s PhotoShop tutorial ??

Page 41: Introduction to Programming the WWW I CMSC 10100-1 Summer 2004 Lecture 3

41

Convert image filesConvert image files

• Can achieved through many tools Photoshop, Acdsee, etc

• You can use the “convert” tool in Linux Part of Image Magic Installed in our department Linux system Can get (via fink) version for Mac OSX Can reduce image quality, do interlacing Example:

• convert -quality 10 foo.jpg foo.tn.jpg

More details about “convert”

Page 42: Introduction to Programming the WWW I CMSC 10100-1 Summer 2004 Lecture 3

42

Battling bandwidth limitationsBattling bandwidth limitations

• Images consume more bandwidth than text files, so use images no larger than 30-40KB whenever possible dial-up users have to wait for image files >= 100KB

• Always specify height and width attributes for images so the browser can “work around” each image while it is downloading

• Don’t put any large images at the top of a Web page

• Use interlaced GIFs and progressive JPEGs

Page 43: Introduction to Programming the WWW I CMSC 10100-1 Summer 2004 Lecture 3

43

Hyperlink (link)Hyperlink (link)

• Hypertext = text + links Typically, you click on the hyperlink to follow

the link

• Hyperlinks are the most essential ingredient of WWW Link documents with other collections around

the world

Page 44: Introduction to Programming the WWW I CMSC 10100-1 Summer 2004 Lecture 3

44

All Hyperlinks Have Two Parts

All Hyperlinks Have Two Parts

• The Link Label is the visible element that the user points to and clicks (link labels can be text segments or images)

• The Link Destination is the location that the link takes you to when you click on the link

• Only the link destinations are handled differently for absolute URLs, relative URLs, and named anchors

Page 45: Introduction to Programming the WWW I CMSC 10100-1 Summer 2004 Lecture 3

45

Anchor Tags Anchor Tags

• Hyperlinks are created with the anchor tag <a></a> The href attribute is used to specify the

link destination Examples:• <a>this is a link label</a>• <a href=“dest.html”>label</a>

Page 46: Introduction to Programming the WWW I CMSC 10100-1 Summer 2004 Lecture 3

46

Different Types of HyperlinksDifferent Types of Hyperlinks

• Absolute URLs usually point to Web pages on other Web

servers

• Relative URLs point to Web pages on the same Web

server

• Named Anchors point to a different location on the current

Web page

Page 47: Introduction to Programming the WWW I CMSC 10100-1 Summer 2004 Lecture 3

47

Absolute URLs Absolute URLs

• All absolute URLs use complete URL addresses for their link destinations Example format: <a href=“http://www.uchicago.edu/”>UChicago</a>

• Any Web page can be referenced by an absolute URL as long as you have its correct address Example: Linkexamples.html

Page 48: Introduction to Programming the WWW I CMSC 10100-1 Summer 2004 Lecture 3

48

Relative URLs Relative URLs

• A relative URL need only specify a file name for its link destination:

<a href=“sol2.html”>alternative solution</a>

• This assumes the destination file is in the same directory as the HTML file containing the link

• If the file is in a different directory, pathing information must be added to the href value

• Example: Linkexamples.html

Page 49: Introduction to Programming the WWW I CMSC 10100-1 Summer 2004 Lecture 3

49

Named Anchors Named Anchors

• A named link destination specifies a location that has been marked by an anchor tag with a name attribute

<a name=“lumber”>Good Lumber</a>

<a href=“#lumber”>some good lumber</a>

• The href value is prefaced with the # character but the name value is not

• Example: Linkexamples.html

Page 50: Introduction to Programming the WWW I CMSC 10100-1 Summer 2004 Lecture 3

50

Named Anchors Combined with Other Links

Named Anchors Combined with Other Links

• A named anchor can be added to an absolute or relative link as long as the destination being referenced contains that named anchor <a href=“treehouse.html#lumber”>Some Good Lumber</a>

• Just add a # followed by the anchor’s name to the end of the file name in the href value

Page 51: Introduction to Programming the WWW I CMSC 10100-1 Summer 2004 Lecture 3

51

Making anything a linkMaking anything a link

• You can enclose all sorts of elements inside <a></a> text headings pictures

• Making a picture a link: <a href= “foo.html”><img src=“foo.jpg”></a>

• Example: imagelink.html

Page 52: Introduction to Programming the WWW I CMSC 10100-1 Summer 2004 Lecture 3

52

Control Link StatesControl Link States

• link, vlink and alink Attributes of body tag All three accept color values• Either hexadecimal RGB triplet or color name

Determine the color of all unvisited, already visited, and currently visiting hyperlinks

Page 53: Introduction to Programming the WWW I CMSC 10100-1 Summer 2004 Lecture 3

53

Link Maintenance Link Maintenance

• An absolute link that works today may not work tomorrow

• Dead links frustrate visitors and detract from your Web pages

• To keep all of your links operational, you have to test them periodically and update any that have died

Page 54: Introduction to Programming the WWW I CMSC 10100-1 Summer 2004 Lecture 3

54

Image maps Image maps

• An image with different clickable regions (hot spots) Each region can link to different document Typically used in navigational menus and bars

• It is the joint-work of <img> and <map> elements <map> defines the hot spots and the linked destinations

• <area> (standalone tag) Attributes: shape, coords, href

<img> uses the “usemap” attribute to associate to certain map

Page 55: Introduction to Programming the WWW I CMSC 10100-1 Summer 2004 Lecture 3

55

Image maps Image maps

• Image maps can be created manually with the “ISMAP trick” or with the help of an image mapper

• Best created with software

• Example: Imagemap.html

course’s home page