Printable copy of this entire site
Transcription
Printable copy of this entire site
CTN 160: Web Production Class Website setup Syllabus Course goal / project / final outcome Basic xHTML template Blog expectations Part one expectations Parts two-three expectations Part four expectations Part five expectations Major checkpoint: project plan Bad Website project Part six expectations Part seven expectations Part eight expectations Part nine expectations Reference and background materials Background: the Internet Background: search tools Reference: foundation information E-socrates.org (class Website) setup E-socrates.org (class Website) use Freeshell.org account registration Freeshell.org account setup Freeshell.org account use Reference: Web server space and putting files there with FTP Illustrated, step-by-step guides for FTP setup and use Reference: Basic xHTML Background: Firefox add-ons (extensions) Guide to using our freeshell.org accounts to make xHTML pages (Optional) Illustrated, step-by-step guide to using Notepad to make xHTML pages Reference: Usability Lab: usability discussion Reference: Website planning and overarching design Wireframe example Lab: project planning checkpoint Background: links for Website design and planning Reference: Adding graphics to Web pages Background: image maps Lab: photo editing challenge Reference: Use of color on the Web Lab: Ongoing project, bad html Reference: CSS Positioning (CSS-P) Reference: Tables and data presentation Reference: Inline frames Reference: xHTML forms Reference: Javascript and other ways to make a Web page more interactive CTN 160: Web Production General information CTN 160 Course Syllabus Yes, it's long. Read it anyway. This South Seattle Community College course, CTN 160: Introduction to Web Publishing (Web Your friendly instructor Production I), introduces students to Web production using xHTML. Students learn xHTML and the Al Boss fundamentals of creating a Web site: identifying site [email protected] goals and a business plan for the site, how to More contact information is on incorporate design, layout, graphics and other my profile page or below. elements into a site, how to create tables, input forms, frames, and how to implement their Web sites using FTP and remote file management. The overall goal is to create and publish a viable and usable Web site consisting of valid hand-coded, platform and browser independent xHTML that meets practical and legal accessibility requirements. Contact information Office Hours: My "office" hours are by appointment. ("Office" is in quotes since I have no office on this campus.) I can be reached by phone or email. Al Boss (206) 263-7832 (my work phone at King County; please don't abuse it) [email protected] (I don't always check my SSCC email daily, so if it's urgent, you'd better call.) Sometimes I leave an instant -message client running at work. It's there for WORK purposes, so please don't IM me to tell me what-all the dog did today. IM (instant message) options: Note--these are for instant message, not email; I don't check these email accounts) AIM: albertwboss MSN: [email protected] ICQ: 13400646 Yahoo: albertwboss Google: [email protected] If you don't know what IM is, then you probably don't have it , so don't lose any sleep over this; just email me instead: [email protected]. More contact information is on my profile page for this course. My employer, King County, is reasonably understanding of the fact that I'm teaching this class, but sometimes you might contact me when I'm in the middle of a project or deadline. I'll try to help right away if it's only going to take a minute or two, but I can't really use County equipment to do work for the college, so please don't take it personally if I tell you I need to get back in touch with you later. Premise For this course, you will be treated as a contract employee. You will be paid in a currency called "points", which is paid at the end of the quarter. There's no paid time off, so if you don't show up, you don't get paid. Full payment depends on: the quality of your work whether you deliver what was requested whether you meet your checkpoints and deadlines how well you work with, and get along with , others You've been hired as a contributor . You will be paid for quality active participation in conversations related to the work we're doing. These happen on the discussion board. Ongoing progress is expected and must be reported via a (minimum) weekly blog entry. Ultimately, if you want to get paid a premium amount, you need to demonstrate that you have command of a body of knowledge, that you are able to learn, and that you can apply this knowledge to whatever problems come up. Course Structure and Requirements: Required and Recommended Material: Required: Ongoing use of our course Website. (setup instructions are here) Required: An account on http://www.freeshell.org/ (registration instructions are here) Recommended text: Yes, that does say "recommended text". I am a firm believer in the use of a book or two as a reference guide, and these are both excellent books. Sooner or later you will need reference books for work, so if you're able to afford one or both books, I suggest you do so. However, there's not an HTML reference in existence that can't be found online, so if you have good Internet access and you need to spend the money on something frivolous like food or shelter, the bookstore will offer full refunds through Friday, Jan. 9. HTML, XHTML, and CSS, Sixth Edition: Visual QuickStart Guide by Elizabeth Castro Additional readings will be provided on the class Web site or placed on reserve in the Library. Required: CTN 100 (Intro to computers) or enough computer experience that the tool doesn't get in your way (see survival tips below) Required: Web access Required: Email access Required: Participation in online discussions held via the Website. Required: Status report blog entries, at least weekly Required: Other readings, exercises and assignments as noted in their respective sections of this Website. Recommended: do whatever you can to avoid thumb drives as a means to move files between campus and home, due to virus concerns. Recommended: account set up at http://students.southseattle.edu, email and portal page at a minimum Expectations: Checkpoints: Checkpoints differ from traditional assignments with due dates. They're to be done in combination with the reference/reading materials, as you go. The checkpoints are listed throughout the referenence materials for the class (broken up by "parts" on the course Website). Read your way through the materials, and do the checkpoints as you come across them. My intention is that you read a little, try it out, read about the next thing, try it out, etc. The purpose is to give you lots of opportunities to make sure you're getting the concept, instead of having to read a bunch of stuff and then take a test about it. If you get stuck at a checkpoint, send up a call for help in the course Website's question-and-answer forum. We do keep building on what you do in the checkpoints, so you need to achieve them in order to work forward. Checkpoint review: When a checkpoint gets mentioned in the notes, I should be able to visit your site and see evidence of your work on it. Since the idea is to work on the checkpoints in conjunction with reading the course material, I expect to see signs of life out of you in this regard within a week at the latest. Due dates: Due by: Certain objectives (most notably site plans) will include an expected due date. Material turned in by this date is eligible for full compensation. Drop-dead dates: Material my be turned in for one week beyond the due date. Your pay will be docked for every day past due. If the drop-dead date passes and your work has not been delivered, you're in violation of your contract and won't be paid at all. Blog: You'll be using a Weblog to provide ongoing status reports for your CTN160 experience, updated at least weekly. I should be able to read your blog and track how you're doing with the class--success, confusion, ahead, behind, bored, what you've accomplished, and anything else that will help me know what's up with your work here. Blog expectations and instructions are reviewed in more detail on their own page. Online discussion: Part of this class is meaningful participation in online discussions held via the Website. In the workplace, collaboration is increasingly taking place online, so that's the expectation here--contribute to the conversations. This is a 5-credit-hour college course. It will take an investment of time, energy, creativity, and effort if you're going to get your money's worth out of it. The Syllabus is a plan for the quarter and as such, is subject to change. It is the student's responsibility to be aware of any changes paying attention to the class Website. SSCC has published Student Learning Objectives (SLOs) for each course of study, including learning objectives for the Web Publishing program, under which this course falls. (Adobe PDF file.) Compensation (Grades) Checkpoints online, on time (30 pts.) Participation (20 pts.) Site plan (30 pts.) Valid code (10 pts.) CSS understanding (10 pts.) CSS-P understanding (10 pts.) Consistent navigation, design (10 pts.) Working form (5 pts.) Challenged yourself (15 pts.) On server and working (10 pts.) Followed instructions (10 pts.) Professional quality (no typos, etc.) (10 pts.) Presentation (10 pts.) I track accesses to the site--when, how often, how long, how much activity . I use that as a measure of attendance. For online students, participation for this class translates mostly to activity in the discussion areas; for the classroom it's a split between online participation and in-class participation. Duplicate work Some students are fortunate enough to be able to work on their assignments with others who are also taking this class. I have no problem with that. Most workplaces encourage people to work together. This is still college, though, not the workplace. You have to be able to give me , as your instructor, something that will allow me to do my job, which is to individually assess your work and your skills for the college. I cannot accept assignments that are identical duplicates of one another right down to the same typos, the same mistakes, and so on. The college requires each student receive an individual grade for their work, and I have no way to assign an individual grade if I don't know how much of the work you did. The best I can do in these circumstances is to split the grade between the people (for example, give you 50%). Nobody wants that to happen. It's okay to work together to solve problems, but implement the solution yourself. Type your own code, without copying it letter-for-letter from a classmate. Put your own thought into it. Don't worry about making mistakes ; we can correct those. I can't help you if I can't see where you need the help, though. The goal of this class is to teach you basic skills. I can't do that if you don't show me YOUR skills. For more information and definitions of cheating and plagiarism, you can refer to the "Academic Dishonesty" section of the current student handbook. The filename changes too often for me to link directly to it here, but from the campus home page at http://www.southseattle.edu/, click "Student Resources", and you'll find a link to the most current version. Don't be an idiot Do not grab some Website off the Internet and try to pass it all off as yours. If you can find it on the Internet, so can I, and I cannot give you credit for someone else's work. I expect and support your looking at other people's source code to figure out how to do something, and some degree of code reuse is normal, but I can't assess your understanding of the material if the bulk of the code is not yours. Again, you have to show me your basic Web production skills, not just your copy-and-paste skills. The campus, like pretty much any workplace, is a networked environment. You log into the computers in order to use them. This means somebody somewhere knows who you are, where you are, and what you are doing. Do not sit in my class, or anywhere else where you shouldn't be doing it on someone else's network, IM'ing your friends or reading your email. It is discoverable. You have no privacy, and you will have even less in the modern workplace. Don't do things that might convince people that you're not serious about your work. (Apologies for being insultingly preachy about this subject, but I really don't want someone to lose a job because we didn't stress this enough in college.) Protect yourself Developing work for the Internet, both in this classroom and in a job, means it's going to be put where anybody can steal it and claim it as their own. Plan now for what you'll do if this happens to you and you have to prove that you're the one who did the work. Many options are available, including: Keep a backup copy of a pre-release draft, burned onto a write-only CD so the file date is evident. (Yes, you can fool this system, but anyone who's going to go to all that trouble would save time just doing their own work; we assume they're stealing your content because of time constraints.) Put something in the code that only you know about or can explain. (Peculiar spacing or indents, perhaps, or other irregularities that won't be obvious .) Make the code so obtuse no one can read it. (Do NOT expect a good grade if you do this, though!) Resources Class Web site: Class materials such as selected notes, assignments and the syllabus for the class are posted on the class Web site. Any online students are welcome to attend sessions of the in-person class, it meets at South Seattle Community College in room OLY 102 (Olympic building, SE corner of campus) on Tuesday and Thursday mornings, from 8:00 - 9:50 am. The corresponding Friday timeslot is set aside for lab work. Computer Use: Your lab fee entitles you to use the College's computing facilities. You may use the computers in the Library and Learning Center Information Commons during scheduled open hours. Lab aides are available to assist you with use of the computers, but they will not help you with completion of your assignments. Once again, be forewarned that our shared campus Windows computers have some history of seeing viruses transmitted via thumb drives. I cannot guarantee their sanctity and I do not suggest transferring anything between a computer here and your own personal computer by means of removable storage media (thumb drives, disks, etc.) There's also an open computer lab/lounge in the Tech Ed building (Room 127A, aka the GeekHaus), that's usually got some advanced students hanging around in it who might be of help. One of the best resources for this course is the "Question and Answer" section in the course discussion area. In most of these courses, your fellow students can answer a question you post here before I even see it. Survival hints (Note: hours and resources listed here are as of the last time I checked. Please verify them with the source before taking them as gospel truth .) 1. If you find working with either computers or with the Windows operating system is so confounding that you're spending as much of your time fighting with the computer as you spend doing the work, please let me know right away. A couple hours training on basic Windows user skills will save both you and me a world of 2. 3. 4. 5. 6. 7. 8. grief. I will either find someone to help you or I'll take part of a day off and do it myself. If the tool (computer) is keeping you from being able to do the task easily, this is a huge problem and one we want to address quickly . I can pretty much promise that you will, at some point this quarter, mess up one of your files and want to roll back to a previous version. Do yourself a favor and, before you make major changes to something, save a backup copy. When we start using the server accounts for editing files, see the instructions for using a shell account for details on how to do this . Feeling left behind? Overwhelmed by assignments and reading? Don't wait until the last minute to do something; it will only get worse. In addition to help available at the open labs, the Tutoring Center offers one-on-one help. (Instructor signature required.) If you're supposed to be in a classroom, attend class regularly. Set aside time every week to do your homework and readings. Use the Library and Learning Center. It is open weekdays from 7:30am until 9:00pm (Friday until 4:00pm), 9:30am-2:00pm Saturdays. (Check the times via their Website; they are subject to change.) If you need help, ASK! The tutoring center can help to locate assistance in your subject area. Check the course's Question and Answer forum often, not only when you have a question about something but also to see if someone else has a question you can help with. Remember, we're all in this together. Do the work! Readings and exercises are not just a random act of torture. It may not need to be passed in and graded to be useful. Quality control (and SSCC Writing Center) Although I don't technically grade your work for the quality of your writing, I do expect professional-quality work out of everyone. Your Websites' content needs to be up to business standards--the kind of thing someone would pay you to do. An employer wouldn't accept sloppy sentences or misspelled words, and neither will I. You should , in the course of this class, produce work that you can show to potential employers and make them want to hire you, not want to avoid hiring you. Therefore, I encourage you to take advantage of the SSCC Writing Center. The Writing Center staff boasts a great combination of faculty, student peers, and community writers to work with students. They give reader feedback, help students follow the assignments, help students learn to edit, but do not do the editing for students. There are also plenty of good Websites, such as Purdue University's OWL, http:// owl.english.purdue.edu/handouts, that can help sort out obscure grammar rules. However, someone with good English grammar and spelling skills (maybe a favorite former instructor?), who doesn't look at your material all the time, can also be a good resource. Fresh eyes can sometimes be the best proofreading and editing one can find. (That's a verbatim quote from one of our students, Denise Lavoie. Please feel free to offer your own suggestions for improvements to any of the class materials.) SSCC's Writing Center is in the SSCC Library (LIB), room 205. The schedule is : Mon-Fri: 9:00-2:00 Mon, Wed, Thurs: 4:00-6:00 Sat: 10:00-1:00 (Check the times via their Website; they are subject to change.) Special needs and fair treatment If you have any special needs, requirements, or accomodations that will help you learn the material, please let me know. South Seattle Community College takes the accessibility requirements very seriously, and we will do anything we can to ensure a positive learning experience for our students. If you ever feel you've been discriminated against or treated unfairly, for any reason, I hope you will let someone in authority know. The campus has very good offices for Diversity & Retention (for cultural, racial, gender, or sexual preference issues), and for Disabilities. If it's me (or another instructor, or anyone else for that matter) I would hope you'd talk to the person first, but I realize that isn 't always a very comfortable thing to do. Our Dean is Malcom Grothe, and he is a very approachable person should you need to talk with him. Al Boss Why did you pick this class? It seems like I've been teaching Web Intro classes ever since there was a Web to introduce people to. This is one of my favorite classes, because it's kind of unpredictable and never boring to teach. What were you doing before SSCC? My primary job is as a Web developer for King County. In my spare time, I volunteer too much (at least according to my wife) and wish I had more spare time. Have you spent a lot of time working with computers? Have you spent a lot of time online? When I was 18, the University computer delcared me dead. It took me two weeks to convince them that I was still alive, and to this day they insist that "the computer cannot make that kind of mistake." I swore at that time that I'd never touch a computer as long as I lived. I managed to keep that promise until gradual school, but then as computers became more and more useful as communication tools, I found my resistance to them eroding, and now I find myself practically tied to the things. Some of my contact information (Instant Message [IM], phones, etc.) is also available on the syllabus. Checkpoints Checkpoint, file safety: In a nutshell, if you are working from a campus computer for this class, register at http://ol.freeshell.org and use that site to edit and save your files until you have a Web host account set up. Once you have a Web host set up for your files, you can also use UnlimitedFTP (aka MyFTP) (http://myftp.utechsoft.com/) to edit your html and css files directly on the server (after making a backup copy there first!) without having to download them to a local computer. If you use picnik.com for image editing, and save from there directly to flickr.com, you can code your image links to the flickr site and never have to download an image file onto a campus computer. (You'll need accounts with both.) That's the oversimplified summary version. There's a lot more than that to it, so read on. Checkpoint, server account registration: Email your login (not your password) to [email protected] so I can complete your setup as a student in this class. Checkpoint, file transfer: Review your options. Illustrated, step-by-step demonstrations of how to use an FTP program to transfer files to an account on Freeshell.org Web-based FTP with UnlimitedFTP (http://myftp.utechsoft.com/)* (bonus: this client will save your FTP login information) Web-based FTP with Net2FTP (bonus: you can edit files without downloading them to a local computer. Make sure you save a backup copy first, just in case!) Filezilla for Windows, Linux, Mac OS 10.5 and above (low-bandwidth; screenshots) How to use Filezilla ** (Flash movie, broadband recommended) Many publicly available computers, including the ones in libraries and Internet cafes, do not have a dedicated FTP program installed. A clever workaround is to install Filezilla on a thumb drive and use that to transfer files. (Not recommended for SSCC campus computers, though, or any computers whose security you're uncertain of) How to install Filezilla Portable** (Flash movie, broadband recommended) * UnlimitedFTP requires Java. If you're at a computer that won't let you use it, use Net2FTP instead. ** Special thanks to Clive Woodhouse for creating and sharing the Flash -based Filezilla tutorials. Checkpoint, basic xHTML, tags for document structure: Set up a template file as per the instructions. Create a new file based on it. (See Working in the shell account for instructions.) The template should include the tags for document structure as noted in this section, thus saving you some work. Put your name as the contents of the title this section, thus saving you some work. Put your name as the contents of the title container, then repeat it again as the contents of an <h1> container at the top of the page body. Add in a <p> container with a sentence or two about what you might pick for your class project. (Don't panic; you can change your mind later.) Checkpoint, basic xHTML, saving xHTML documents: Save this file as an html file as noted here, using the file name "index.html". Open it in a Web browser and see how it looks. Edit the file (using the editor, not the browser) if necessary. Checkpoint, basic xHTML, formatting text using xHTML: Add a level-two heading (h2), called "Assignments". Checkpoint, basic xHTML, linked (sitewide) CSS: Open another instance of the text editor (same way you opened it the first time), so you have your index.html page open and can create another page. Create a linked css page as described in this section, and save it as "style.css". Now add the proper <link /> tag to the <head> container of index.html, also as described here. Edit your current template file to include the <link /> to the linked css page so it'll be automatically included in your new files. Checkpoint, basic xHTML, making lists: Beneath the "Assignments" heading, create a bulleted (unordered) list. For list items, you can use these three items: Checkpoints, Project plans, Final project. Checkpoint, basic xHTML, making links: Create a link that goes to our course Website at http://tiny.cc/ctn160. Checkpoint, basic xHTML, the mailto: value: Add an email link to yourself if you wish. Make any additional style changes you'd like. If you're not working in a shell account, then follow the instructions from the FTP section of this course, (in conjunction with the ones provided by your Web host provider if you're not using a freeshell.org account), to upload your index.html and style .css files to the Internet. If you are working in a freeshell.org shell, this step is already done; just type (enter) at the command prompt. Now find the index.html file on the Internet , copy its URL, and add it to the "What's my URL?" forum on the course Website. Trouble uploading your files or finding them once they're uploaded? Come to the Question and Answer forum and let us help out. Checkpoint, usability: Several sites are listed in the usability site review instructions. Follow those instructions. Under the forum called "Usability," report what you thought of each site, and share your opinions on the usability of each site, any concerns that arise for you, etc. Checkpoint, Website planning: assemble all necessary Website design documents and drawings, upload everything, and link them to your index.html page. Checkpoint, use of color: Bad Web pages. You've learned enough now to be dangerous. This is your chance. Checkpoint, CSS positioning: Lay out your page design with CSS-P. Take the storyboard and use a pencil to draw a grid across the page . Once you have drawn the grid, take some time to figure out how to describe the positions and relationships. Try coding it using CSS-P divs for everything you're placing. Elements of your site, such as graphics, text and color, can be plugged into the divs, creating the same look as the storyboard. Checkpoint, tables: Incorporate a data table into either your class project or your Bad HTML page(s). Checkpoint, forms: If your project site calls for a working form, then add one. You can use the Newmanic script detailed above for this class, although you'll have to work with your ISP or network people if you need a permanent one after this quarter ends. If your project does not call for a working form, then add one to your Bad xHTML site. If you have no idea what kind of form you'd add to your Bad Site, just pretent that you have opened an online store that sells and delivers made-to-order pizza, using your own unique ingredients and delivery methods. Allow your customers to choose from among your ingredients and create their own pizza. Your form should allow the customers to choose from among 3 different sizes, 3 different types of crust, 10 different types of toppings and 3 different modes of delivery. Don't forget to include in the form some sort of way you can collect your money. Your form should also include proper options for submitting and resetting information. It has become tradition over the years in this class, for the pizza business forms to feature some pretty bizarre stuff. I've had people offering delivery by rocket, teleporter, pixie dust, pony, etc., and including among the ingredients choices such as watermelon rind, lint, gravel, cigarettes, helicopters, armadillo, and so forth. Checkpoint, Javascript: If you don't already have scripting in your project site or Bad xHTML, go to http://javascript.internet.com/ or another source of free JavaScripts (several are listed in the Javascript section of this site). Find a JavaScript that you like, and that will work in multiple browsers. Follow their instructions to add it to one of the xHTML pages in your project or Bad Website. If it doesn't work, try another one. A lot of the scripts are old and might no longer work in modern browsers. Using the course Website Having difficulty finding your way around the course Website at first? These screen shots might help. Course home page Discussion areas Course goal / project The expected outcome from this class is creation of a portfolio-quality Website of your own design. With very few (if any) exceptions, everything we cover in our lab work will get folded into your project site. By the end of the quarter, each page on the site should include as many elements of Web publishing learned in class as is practical. The Website created for the course project can be on any topic you'd be willing to show a prospective employer--a business or organizational site, an informational site, a "let me show through these pages how great I am and why you should hire me" site, a hobby site , a genealogy or family site, etc. all could qualfy. The site must contain at least 12 original hand coded pages that link to one another, and a linked stylesheet to control them all. As long as you keep up with the lab work, and continually fold what you've learned into both new pages and the ones you've already created, your project will remain up-to-date with everything required. Credit comes from the following: Participation in online discussions: use the discussion board to interact with the other students, asking questions or commenting on their work. Correct use of xHTML transitional code (Use http://validator.w3.org/ to check your code as you develop it . Your code needs to get through the validator without issue to be eligible for full credit on the final project.) Linked CSS used to format all pages in the site CSS-P for complex layout, tables for data Consistent design and navigation/images Use of working form turned it in, etc.) Conventions of good design are followed (consistent navigation, site name on every page, user can always go to main page , alt attributes/values on all image tags, etc.) Online presentation (All students will present their final results via the discussion boards. Tell us about your project, challenges in building or designing and future plans for the project.) You should be able to get a good grade provided you participate in the class, keep up with the work and continually apply it to your site, pay attention to detail, try some advanced tricks like styles, tables, frames or forms, and pay attention to design details discussed this quarter. Everything needs to be put onto the server one week before the end of the quarter, even if you're still working on it, and is fair game for your classmates and me to preview at that time. Start the discussion thread (see next paragraph) on that day, too. You can continue to work on your final project up to the presentation date. Classroom students must also show up in class for the presentation date (the final exam date for the class). No excuses. Not even if you're dead. FTP the files to a Web server. On the class discussion/bulletin area, in the "Final Review" forum, start a thread: Use your name as the subject line Tell the direct URL to your final project's main page Tell us about your project, challenges in building or designing, and future plans for the project Treat this as though it were an online job interview, and you are using this piece of work to convince us of why we should hire you. Point out your strengths, weaknesses, opportunities for improvement, etc. Review your classmates' sites via the discussion area and contribute to the conversation, ask questions, and answer any questions that you can. Help! I have no idea what to do for my project If you're drawing a blank on what to do for a project, here are some thoughts that have come out of past classes. (You'll note that I've had some unusual students over the years. Creative, but unusual.) A site for a civic organization, church, neighborhood, volunteer group etc. that you or a family member , friend, etc. are associated with. A site for a friend or relative's business, hobby, etc. (Or for your own.) An instructional site that tells how to do something you know well (i.e., online research, motherboard replacement, French pastries) A site for a completely fictitious, impossible, but (hopefully) enjoyable-to-invent organization. A pizza site that sells completely inedible pizzas with toppings like rocks, rodents, and lint, with delivery options such as Pony Express, 747, and Fax. (This sprang out of the homework for the part of the class where you learn about making Web forms.) A site that sells your services as a mercenary (would it surprise you that this was originally done by a 20-year-old guy who played a lot of video games?), complete with cruise missiles and thermonuclear devices. A site that offers health, travel, dining and lodging tips for vampires. A pet care Website offering ownership information about unicorns, velociraptors, Minotaurs, etc. A Website for a Barbie trailer park. A site for a favorite park, trail, etc. A remake (real or proposed) for an existing site that could really use the facelift. A site for a musician or band. (Usually someone you know.) Those are some of the ones I can remember turning out well. The bottom line is that it seems to help if it's something you know, or something that holds your interest. Working in the shell account (ongoing) Quick summary Login cd html (enter) cp -r current 2010-01-15 (substitute today's date) (enter) cd current (enter) ls (enter) to see what's there pico filename.html (enter) to edit an existing file or create a new file After exiting Pico, mkhomepg -p (enter) to make your files visible on the Internet Logon We connect using SSH, which is a secure replacement for the telnet protocol. To log onto your server account to edit files: http://sdf.org/ssh/ When the computer asks you if you really want to do this , say "yes". users can all check the detailed instructions for other options available on a computer where you can install software (e.g. not the campus computers). The screen you get will look the same pretty much whether you connect via Telnet or SSH. If you use SSH, the first time you connect it will ask you if you want to set up a security key and a directory to store it in on the computer. The answer to these questions is always "yes". Connection via SSH: Last login: Sun Jan 10 22:10:34 on ttys000 MacBook:~ alboss$ ssh [email protected] The authenticity of host 'tty.freeshell.org (192.94.73.5)' can't be established. RSA key fingerprint is 53:2a:b3:33 :b6:88:ca:c3:ff:c2:1b:31 :44:11:fo:4e. Are you sure you want to continue connecting (yes/no)? yes Warning: Permanently added 'tty.freeshell.org' (RSA) to the list of known hosts. [email protected]'s password: Whenever it asks you a question you don't understand, press "enter" (or answer "yes" if that's an option). For example: Just press enter and continue on till you've given it your login and password. Once you're connected, you are typing directly onto the server. Whenever you're sending a command to the computer, you'll need to press the "enter" (or "return", depending on your keyboard) key on your computer. sdf.lonestar.org (pts/0) if new, login 'new' .. login: alboss Copyright (c) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007 The NetBSD Foundation, Inc. All rights reserved. Copyright (c) 1982, 1986, 1989, 1991, 1993 The Regents of the University of California. All rights reserved. You have new mail. Welcome to the SDF Public Access UNIX system. (est. 1987) For quick help, type 'help' For detailed questions and answers, type 'faq' For user discussion boards, type 'bboard' For interactive discussions, type 'com' For adding yourself to the SDF User Map, see http://sdf1.org/map to create your URL http://alboss.freeshell.org, type 'mkhomepg' Explore and Enjoy! $ Next step: cd html (then press the "enter" key on the keyboard) Now you're in the right place to work on Web files. I suggest you create a directory named "current" and keep what you're working on in there. When you log in , the first thing you should do is make a backup copy of your work, so if you completely screw up you have something to go back to. Check to see what you've got in your directory. Type: ls (then press the "enter" key on the keyboard. That's an L, not the number 1, by the way: LS, but lower-case.) If this is the first time I've been here after setting the site up, I should see a directory called "archive". I want to make a copy of that directory, named "current", and do all my work in the copy. To make a copy of "archive" and the files in it, and name the copy "current": cp -r archive current (then press the "enter" key on the keyboard) I'll always do my work in the directory called "current", and before I start doing a lot of work, I'll make a backup of "current", named for today's date. Use this format: YYYY-MM-DD, in other words the 4-digit year, two-digit month, twodigit date. If today is January 4, 2010, then I would use 2010 -01-04. To make a copy of "current" and the files in it, and name the copy "2010-01-04": folder I just made: cd current (then press the "enter" key on the keyboard) Let's see what I have to work with : ls (then press the "enter" key on your keyboard) If I see a file named "test.html" that I want to edit, I type: pico test.html (then press the "enter" key on the keyboard) If I want to make a new file, named test2.html, that's a copy of test.html and work on that file, I type: cp test.html test2.html (then press the "enter" key on the keyboard) pico test2.html (then press the "enter" key on the keyboard) Later in the class, we will set up a master template file, from which you can base all other files, so these two commands will be ones you use a lot. If you just logged in and want to make a copy of the directory "current" and the files in it, and name the copy "2010-01-06": cp -r current 2010-01-06 (then press the "enter" key on your keyboard) If you do this sort of thing when you log in, and always do your work in the directory called "current", then you'll have a safe backup copy if you need to roll back to a previous version. If you think backups are for wimps and just want to log in and work on the files in the directory named "current", you would do this immediately after logging in: cd html/current (then press the "enter" key on your keyboard) Now you're in the right place to work on your files. Just remember there's no "undo", so if you skip making a backup copy and you completely trash something, it will not be a good thing. $ cd html $ $ ls 2010-01-05 2010-01-07 current $ $ cp -r current 2010-01-11 $ $ cd current $ $ pico test1.html Common commands Here are some commands you'll be using a lot. Press "enter" after each one to make it happen: ls (shows the files you have available) cd (change to another directory) cd .. (go up to the parent directory) cd ~/html (go up to your main html directory) cp old.html new.html (takes the file named old.html and makes a copy of it named new.html) cp -r oldstuff newstuff (copies the oldstuff directory and all files within it to a new directory called newstuff) pico file.html (opens file.html in an editor so you can change it ) exit (logs you off the server) Whenever you add a new file to your Website: mkhomepg -p (then press the "enter" key on your keyboard) This is what makes the new files visible . Setting appropriate directory permissions for /www/af/a/alboss Setting owner and group. Setting file permissions. Done! $ If you are editing an existing file, the changes should be visible as soon as you save them. Ongoing use of a template file in a shell account: To create a new file named newfile.html: 1. pico newfile.html (enter) (replace "newfile.html" with whatever name you want to use) 2. control-r, press the zero, press "enter" (this inserts the template content) 3. After exiting Pico, mkhomepg -p (then press the "enter" key on your keyboard) to make the new file visible on the Internet Working within the Pico editor: Within Pico, hold down the "control" key (represented here by ^) and press a letter to make something happen. Use the arrow keys on your keyboard to move around. ^G - Help text. ^O - Save. ^V - page down ^Y - page up ^A - move to the beginning of the current line. ^E - move to the End of the current line. ^W - find ^D - Delete the character at the cursor position . ^^ (Hold down control and shift, and press 6) - Start selecting text from where the cursor is now. Use the arrow keys to make the selection. If you change your mind, hold down control and shift, and press 6 again to stop selecting . ^K - Cut selected text (see above). If no text is selected, it will cut the current line you're on. ^U - Uncut (paste) last cut text inserting it at the current cursor position ^T - Spell check ^R, 0 (that's a zero), enter - Inserts the html template text into the current file ^X - Exit the editor (press enter if you want to save the current file). Typing within Pico is pretty much the same as typing anywhere else on a computer. Hold down the "Control" key and press the letter "O" to save your work. Press "enter " to use the current file name , or type in a new one and then press "enter". When you're finished, hold down the "control" key and press the letter "X" to exit Pico. It will ask you if you want to save your work one more time. You can just type "y" or "n". This is a good fallback if you accidentally really foul up a file you were working on. Exit Pico, do not save your work, and when you reopen the file you'll have the last version you saved. (Basic text editors do not have an "undo" option, which is part of why saving backups of your files is important.) Whenever you create a new file, exit Pico and type: mkhomepg -p (then press the "enter" key on your keyboard) Do that whenever you add a new file to your Website, it 's what makes the file visible. Getting things set up Keeping safe from viruses on shared (campus) computers Never stick anything into anything you're not married to If you do not know for certain that a computer's antivirus program is up-to-date and functioning, then assume that it is not. You have no guarantee that the computer in question is not infected. Speaking for myself and not as a representative of the South Seattle Community College, I do not recommend sticking a thumb drive into a computer on this campus. Ever. Period. If you are taking this class online and only work from your home Checkpoint, file safety: In a nutshell, if you are working from a campus computer for this class, register at http://ol.freeshell.org and use that site to edit and save your files until you have a Web host account set up. Once you have a Web host set up for your files, you can also use UnlimitedFTP (aka MyFTP) (http://myftp.utechsoft.com/) to edit your html and css files directly on the server (after making a backup copy there first!) without having to download them to a local computer. If you use picnik.com for image editing, and save from there directly to flickr.com, you can code your image links to the flickr site and never have to download an image file onto a campus computer. (You'll need accounts with both.) That's the oversimplified summary version. There's a lot more than that to it, so read on. computer, then virus protection consists mostly of having an antivirus program installed, automatically updating the virus definitions at least daily, automatically scanning everything you download or plug in , and always being careful about what you open. Most viruses are Windows viruses, which makes sense given that operating system's domination of the desktop market. Using Mac OS or Linux does not make you immune, though, so there's still no excuse for not practicing safe computing. I have a list of antivirus programs for the major operating systems on the foundation information page for this class. If you are using computers on the campus, however , or for that matter using multiple computers anywhere, then everything becomes a lot more complicated. Again, speaking for myself and not as a representative of the college, I do not recommend using a thumb drive with any Microsoft Windows computer on this campus. Same thing for a rewritable CD, camera, media card, or any other writable media all the way down to a floppy disc , if you could find one. I do not believe we have the hardware , software, or staff to provide a Windows network that is both workable and secure enough to trust with your precious work and with the potential for wrecking your home computer. We do still have classrooms on campus whose computers are not set up with Internet access. Most of the options listed here rely on Web-based file storage and editing as a means to keep files from ever touching a local computer, which means they're not an option if you don't have Net access. These are the ways that I move files between Internet-accessible computers on campus and at home. There are more options here than most people might need, so pick and choose what's best for you. Use the portal at http://students.southseattle.edu/ for email and to create word processor documents, spreadsheets, etc. (Exception: if you are taking the Microsoft Office class or anything else that absolutely requires Office documents, then you need to discuss this matter with your teacher.) Avoid putting your code onto a campus computer at all, by registering with the free server shell account at http://ol.freeshell.org and using it to edit and save your files. Set up a free online file storage account at a service like http://www.box.net/ or http://www.getdropbox.com/. (I use both.) I can download any file from their Websites onto the computer I'm using, work on the file, and then upload it back so I can get to it from the next computer I'm at. Since most of the files I work on are just raw text files (html and css files, specifically), the files themselves are unlikely to harbor a virus. Both Box.net and Dropbox scan files upon upload, so even if I had a virus in one of my image files, I'd find out about it as soon as I tried to store it. Set up FTP (file transfer protocol) access to a Web server so I can transfer files to/ from there. (That's a no-brainer since all the classes I teach already require you to have FTP access to a Web server and we use http://ol.freeshell.org for editing files directly on a Web server that can also be reached via FTP.) I sometimes use a free site from http://www.freehostia.com/ but there are hundreds of choices available. See "Finding a home for your Website on the World-Wide Web " in the FTP Hosting reference materials for CTN 160 for more information. Use a Unix or Linux Web server (such as Freeshell or Freehostia) as my FTP host. Our campus computers use Windows, and since a virus that thrives on one is unlikely to work on the other, it 's a small measure of added safety. Use an online Web-based FTP program like UnlimitedFTP (http:// myftp.utechsoft.com/) or Net2FTP (http://www.net2ftp.com) as my tool for moving files via FTP. The Net2FTP service doesn't let me save my settings, but it is my first choice for on-campus coding use because I can edit my html and css files directly on the server, without having to deal with downloading them to a campus computer. If you do this, save a backup copy on the server so you can fall back in case you royally mess something up. The UnlimitedFTP service lets me store my server settings on the site, so I don't have to enter them every time I need to move a file. This is nice but there's not an option for editing my files without downloading them to the local computer, so I don't use it as much on campus. See "Basic FTP software instructions" in the FTP Hosting reference materials for CTN 160 for more information. Use an online image editing and storage service, such as Picnik, http:// www.picnik.com or Aviary, http://aviary.com/. These allow me to edit my images without putting them onto the local computer. Picnik will allow you to save an edited image directly to Flickr.com, and Flickr will supply you with the needed html to add that image to your Web page in the img src code. Work via multiple operating systems. Since campus uses Windows, consider using Mac or Linux at home if you can. I use Ubuntu Linux, which is free and actually easier to install and run than Windows was, at least for me. If I'm using Windows, don't use the default browser or email client. Viruses are written to hit the defaults first, since most people don't change them. Use Safari, Firefox, Opera , or Google Chrome as your Web browser on your home Windows computer. All are free downloads. Use Mozilla Thuderbird or another email program, or Web mail, instead of Microsoft Outlook or Microsoft Outlook Express. When working away from home, carry a runtime version of an operating system such as Linux on a CD or thumb drive, and boot from that (making ceretain the computer is turned completely off before you insert the thumb drive) so you're not even using whatever operating system is on the computer. That will keep you safe from anything harbored on the computer. This is the only circumstance under which I would trust using a thumb drive on a possibly unprotected computer. Unfortunately, most computers on the SSCC campus currently do not boot from anything but the hard drive, which makes this option of limited use here. An interesting option that's not quite ready for my needs is the virtual computer offering from http://g.ho.st. It runs an entire desktop within your browser, giving a similar effect to Remote Desktop. If it had a text editor and an FTP client I'd probably reccomend it for my class, but those tools are still in development at this time. I haven't researched the entire Internet, and new options get invented all the time, so if you have a better suggestion, please share it with me: [email protected]. Class Website setup Meet our courseware. The software is called "Moodle", and the hosting service is named e-Socrates. They're an Italian company, which is why their English looks a little like we should send it to the SSCC Writing Center. Follow these directions to set up an account on the e-Socrates.org site . (They will NOT spam you.) 1. Go to http://www.e-socrates.org/login/signup.php 2. Follow the directions on the right side of the page to create an account for yourself. Keep the login and password someplace safe, where you can find it when you forget what it was. 3. Wait for the system to send you a confirmation email . This usually does not happen immediately, so do not be alarmed if you don't hear back within seconds. If it takes longer than a couple hours, check your spam filters, and if it's not in there, please email me ([email protected]) and I'll see if I can help troubleshoot. 4. Once you've recevied the confirmation email , click the link in that email message. That should log you into the site. 5. Go to the course home page at http://tiny.cc/ctn160 if you're not already there. 6. On the left side of the page, click "Enroll me in this course". For the "Enrollment key", use this: ctn160winter2010 Set up your user profile: 1. Click "Profile" on the far left, then pick the "Edit profile" tab. Fill out your profile (making certain to include an email address). If it makes you confirm the email address, watch your email and follow the instructions (probably just clicking on a link embedded in the email). 2. Also, in the profile make certain to click the "Show advanced" button. This is where you'll type in your Website address once you have a site location ready. So, remember where it is. 3. Be sure to check your email. Forum postings should come via email, but blog postings won't. My main complaint about Moodle is that the blogs don't take comments. (That means they're not blogs in my opinion, but who asked me?) If you're confounded by the site setup, I have several annotated screen shots of the course Website to point out the sections you'll be using the most for now. You'll also need to set up a freeshell.org account for this class. Freehostia free Web space setup Note: these instructions are specific to setting up a free account with Freehostia. If you set up a paid account, purchase a domain name of your own, use another service, etc., then the procedure you'll need to follow will be slightly different from what's listed here. Check in with your provider's tech support for the specifics. The direct URL to the setup page for a free Web space is http://www.freehostia.com/signup.html? plan=92. If for any reason that doesn't work, go from their home page at http:// www.freehostia.com/, scroll down and pick the free plan. You'll probably have to pick the free plan again on the next page. (They'd rather you pay them for a bigger plan, of course, so they try to entice you here.) Related links Translating Freehostia's emailed message into English An illustrated guide to FTP'ing files to a site on Freehostia When you're done, they will send you an email whose goal appears to be to confuse you completely. Read translating Freehostia's emailed message into English to see the only two parts of that email that you really need to pay attention to. Server account registration (Windows users) Mac, Linux, and Unix users, your registration instructions are over here. Part one: a lot of screens to read and type on. Go to telnet://ol.freeshell.org (Note: this is not the same address we use after this registration.) Type the word "new" and press the "enter" key Press the "enter" key Type the word "new" and press the "enter" key Follow the instructions onscreen. sdf.lonestar.org (ttyp0) if new, login 'new' .. login: new Welcome to the SDF Public Access UNIX System - Est. 1987 You are the 31st guest today, logged in on 11-Jan-10 03:43:58. ***NOTICE*** ESKIMO NORTH customers and GREX members are welcome here! We hope you will make SDF your new $HOME Are you using Windows 2K or XP? (Y/N) Y Please press your BACKSPACE key: PLEASE READ THIS CAREFULLY: You are about to create a UNIX shell account. This account may be unlike anything you've used before. We urge you to carefully read all the text displayed on your terminal, as it will aide you in your learning. We also encourage you to try all the commands available with your new account. There are many types of games, applications and utilities you will be able to instantly run in just a few moments. If you are looking for a particular command or version of a command that we do not have, there are ways to request that it be installed. We also offer DIALUP access in the USA and Canada which you will be able to learn about shortly. Be patient, read what is displayed - Explore and Enjoy! [RETURN] Press the "enter" key on your keyboard. Windows users will see this screen. Everyone else, skip down this page till you find the screen that matches what you see. Type carefully! There's no backspace optiontill your account is created. If you make a mistake, hit the backspace key several times (you should see gibberish on the screen when you do that, if the backspace key isn 't working) and press enter. That should cause an error message and a prompt asking you to try again. First, you need to choose a LOGIN. A LOGIN allows you to LOG IN to the system. Your LOGIN can be 1 to 8 characters in length and can be composed of alpha numeric characters. What would you like to use for your login? % MKACCT aborted - Using Windows 2K or XP? Type 'w2k' Type 'mkacct' to create your own UNIX shell account. In Europe? TELNET to sdf-eu.org Type 'help' for additional commands. FEP Command: Type 'mkacct' to create your own UNIX shell account. In Europe? TELNET to sdf-eu.org Type 'help' for additional commands. FEP Command: w2k Windows users: --------------------------------------------- | IMPORTANT! PLEASE READ THIS VERY CAREFULLY | --------------------------------------------There is a bug in the Windows(tm) 2000 / XP TELNET client which causes it to send a <CR><LF> (double return) by default. If you are using Windows(tm) TELNET you MUST correct this RIGHT NOW in order to CONTINUE. Please take the following 4 steps: 1. ESCAPE to the TELNET> prompt by pressing [CTRL] with your ] key 2. At your TELNET> prompt type: 'unset crlf' (Do not type 'quit' after this step) 3. Then press your [ENTER] key TWICE to return to SDF 4. Type 'mkacct' to create your new SDF account An alternative TELNET client: http://sdf1.org/telnet Also, try googling 'putty.exe' for a nice free telnet/SSH client FEP Command: Welcome to Microsoft Telnet Client Escape Character is 'CTRL+]' Windows users: Windows users: hold down the "control" key on your keyboard and press the "] " (it's usually just above the "Enter" key). Now type as below. Microsoft Telnet> unset crlf Line feed mode - Causes return key to send CR Microsoft Telnet> Windows users: Press the "enter" key until you're back at this screen: FEP Command: w2k --------------------------------------------| IMPORTANT! PLEASE READ THIS VERY CAREFULLY | --------------------------------------------There is a bug in the Windows(tm) 2000 / XP TELNET client which causes it to send a <CR><LF> (double return) by default. If you are using Windows(tm) TELNET you MUST correct this RIGHT NOW in order to CONTINUE. Please take the following 4 steps: 1. ESCAPE to the TELNET> prompt by pressing [CTRL] with your ] key 2. At your TELNET> prompt type: 'unset crlf' (Do not type 'quit' after this step) 3. Then press your [ENTER] key TWICE to return to SDF 4. Type 'mkacct' to create your new SDF account An alternative TELNET client: http://sdf1.org/telnet Also, try googling 'putty.exe' for a nice free telnet/SSH client FEP Command: FEP Command: mkacct Mac and Unix/Linux users will have skipped the previous screens and will see this screen instead: (screen shot) mkacct PLEASE READ THIS CAREFULLY: You are about to create a UNIX shell account. This account may be unlike anything you've used before. We urge you to carefully read all the text displayed on your terminal, as it will aide you in your learning. We also encourage you to try all the commands available with your new account. There are many types of games, applications and utilities you will be able to instantly run in just a few moments. If you are looking for a particular command or version of a command that we do not have, there are ways to request that it be installed. We also offer DIALUP access in the USA and Canada which you will be able to learn about shortly. Be patient, read what is displayed - Explore and Enjoy! [RETURN] First, you need to choose a LOGIN. A LOGIN allows you to LOG IN to the system. Your LOGIN can be 1 to 8 characters in length and can be composed of alpha numeric characters. What would you like to use for your login? Pick a login with 8 characters or less . In my example, I'm using "demowin". If your chosen login is already taken, then try another till you get one that works. What would you like to use for your login? demowin Congratulations, you've picked a CLEAN user id. What does this mean? We perform daily audits on our mailserver which allows us to check on attempts of email delivery for non-existent logins, like 'demowin'. If 'demowin' was targetted for email, it would likely have been UCE or spam. However, there have been NO attempts to email '[email protected]' in the past 240 days, which means it is a SPAM FREE login. Please protect it and enjoy! continue? (yes/no) yes Time now to agree to some stuff. PLEASE READ THIS CAREFULLY: You are about to create a UNIX shell account. This account may be unlike anything you've used before. We urge you to carefully read all the text displayed on your terminal, as it will aide you in your learning. **limitations and policy** _______________________________________________________________________ ____ The SDF Public Access UNIX System, a 501(c)7 non-profit corporation, reserves the right to deny access to anyone regardless if the user has made a donation or paid membership dues. If a user's activities are interferring with another user or users (on this system or on another) the user in question will have their account access limited or possibly removed. Spamming of any sort is not permitted and would result in account removal. Illegal activities that actively involve SDF (id est, using SDF to run crack or for guessing passwords and/or trading copyrighted work) will most likely result in account removal. The SDF Public Access UNIX System makes no guarantees in the reliability or preservation of account accessibility, email sent or received, files uploaded or created by online editing or compilation. That being said, data loss should only occur during a catastrophic hardware failure in which critical files would be restored from tape archives. Members of the SDF Public Access UNIX System are expected to conduct themselves in an appropriate and reasonable manner when using our facilities. Lifetime ARPA membership is based on the lifetime of SDF, not of the user and is non-transferable. SDF has existed since 1987 and with your support it just might out live you. ;-) Any illegal activities which includes, but certainly isn't limited to spamming, portflooding, portscanning, irc bots or unattended processes intended as a bot, encryption cracking, unauthorised connections to remote hosts and any sort of scam can really not be tolerated here. Why? Because there are many here on this system that can suffer from this sort of abuse. If you want to use SDF, you really have to care about this system and the people here. If you don't want to care, then you really shouldn't use this resource. I agree with your policy and accept it (yes/no): yes A few more words on the subject... By agreeing and accepting our policy we trust you to follow it. Thank you and be responsible! [RETURN] Press the "enter" key. Now we answer some questions: EIGHT VERY SIMPLE QUESTIONS: Please provide the following information. Your honesty is requested as it is critical in maintaining the integrity of our system. New accounts with bogus information may be purged *without* warning. CTRL-U will clear input .. Your Full Name: Al Boss Year of Birth: 1960 Postal Zip Code: 98126 Are you a K-12, University faculty member or student? (y/n) y YES % SDF offers a very special and completely free full shell membership to educators who use SDF as part of their classroom curriculum. This free membership provides the students with access to the C/C++ compiler, python, perl, network utilities and much more. To see if you qualify for this program, check out the <TEACH> section of the 'faq'. Are you a Amateur Radio Operator? (y/n) n NO Do you use Analogue, ISDN Dialup or DSL? (y/n) n NO Do you play MUDs, MOOs or MORPG? (y/n) n NO Would you like to use features for the aurally or visually impaired?(y/n) n NO Where did you hear about SDF? Al Boss, South Seattle Community College Yet another screen: Login : demowin Name : Demo Account YoB : 1960 Origin : 98126 E-mail : [email protected] IRC : irc.freeshell.org WWW URL : http://demowin.freeshell.org (after validation) WWW Gopher : gopher://freeshell.org/users/demowin (after validation) Webmail : https://webmail.freeshell.org Twitter : http://twitter.com/sdf_pubnix Create this account? (y/n) y Next screen: You now need to set your password. You can enter whatever you'd like, but we recommend using something that is difficult to guess. NOTE! NO ONE, NOT EVEN AN ADMINISTRATOR, SHOULD EVER NEED TO ASK YOU FOR YOUR PASSWORD. If someone does, just ignore them! If you try to set an empty or blank password, you will not be able to login securely via SSH. New password: Re-type new password: The computer will ask you to type a password. You will not see anything when you type your password, so be careful! There will be a few seconds delay while the computer sets things up. Adding password for user demowin Creating login, please wait [Negotiating] Established! Sending update, please wait [Negotiating] Established! Creating your directories /udd/d/demowin, /www/d/demowin Login : demowin Name : Al Boss YoB : 1960 Origin : 98126 E-mail : [email protected] Welcome to the SDF, demowin! HINT - it is imperative that you actually READ the text printed on your screen. By doing so you will understand what the SDF has to offer you. If you do not read or explore you will most likely have no clue .. be an explorer and enjoy SDF! Also, would you like to be listed in the SDF User Map Project? You can do so anonymously, if you wish, at: http://sdf1.org/map (continue) Press enter. Picking a host to login to .. using ukato.freeshell.org Attempting a secure connection to ukato.freeshell.org .. (If this doesn't work, connect back using 'tty.freeshell.org') demowin@ukato's password: PLEASE PRESS YOUR BACKSPACE KEY So, what are you waiting for? Press the backspace key. The Moon is Waning Crescent (10% of Full) .-.-.-' .-'@ /@@@ ./ /@@ /@@@@ |@@@@ /@@@@@ Last Quarter + | @@@ 4 14:12:00 |@ @@ New Moon | 3 6:19:12 \ . @ | \ \ o `\ \ `-. `-. `-`-[CONTINUE] Press "enter". We're almost done with setup! Type Type Type Type 'help' for Commands. 'com' to chat with other users. 'ttytter' to listen to Twitter Tweets anonymously. 'mud' to play the SDFmud. Did you know you can become a permanent LIFETIME member of SDF by making a onetime donation of $36? Type 'arpa' for more info! ukato:/udd/d/demowin> exit You may close this window for now. Make certain to save your login and password someplace where you can find it. Checkpoint, server account registration: Email your login (not your password) to [email protected] so I can complete your setup as a student in this class. Part two: After you hear back from me that your account has been validated Once I've let you know your account is validated, go to: Go to http://sdf.org/ssh/ (Note: this is not the same address we use for setup.) If it asks you anything you're not sure about, press "enter" or, if the option is "yes", pick that. The first time you log onto the site after you're set up, type the following after you log in: mkhomepg (then press the "enter" key on your keyboard) That step will set up a Website directory for you. More on this later in the course. sdf.lonestar.org (pts/56) if new, login 'new' .. login: demowin Password: you have 1 pending notification type 'notes -r' to retrieve it Welcome to the SDF Public Access UNIX system. (est. 1987) For quick help, type 'help' For detailed questions and answers, type 'faq' For user discussion boards, type 'bboard' For interactive discussions, type 'com' For adding yourself to the SDF User Map, see http://sdf1.org/map to create your URL http://demowin.freeshell.org, type 'mkhomepg' Explore and Enjoy! $ $ mkhomepg Creating symbolic link. Setting appropriate directory permissions for /www/af/d/demowin Setting owner and group. Setting file permissions. Done! Use 'mkhomepg -p' if you ever need to 'reset' your file permissions in the future. Once you've uploaded your webpages, run 'mkhomepg -a' to create your custom URL. Your page will then be accessible to the world. $ $ exit In this class, we will simply be using this service as a place to store and edit Web files. By storing and editing directly on the server, we avoid having to use the hard drives of the computers on campus, which have been problematic in the past, particularly with regard to computer viruses getting transmitted by way of thumb drives. Those of you who are technically inclined and curious can read the FAQ on the site to see what you just signed up for. I will warn you now, this may seem a little intimidating at first, or a little arcane. It's not as pretty as point-and-clicking around in Windows. Luckily, there are only about a dozen different things you'll have to do within the shell account, so even if it is intimidating it should not be overwhelming for very long. For initial Website setup, see the instructions for server account setup. See the instructions for ongoing daily use of the shell account for a rundown of what you need to do every time you're working on the site. Server account registration (Mac, Linux, Unix users) Windows users, your registration instructions are over here. Part one: a lot of screens to read and type on. Go to telnet://ol.freeshell.org (Note: this is not the same address we use after this registration.) In the Applications folder, open the Utilities folder. Open the application called "Terminal". Type this: telnet ol.freeshell.org and press the "return" key. Type the word "new" and press the "enter" key Press the "enter" key Type the word "new" and press the "enter" key Follow the instructions onscreen. MacBook:~ alboss$ telnet ol.freeshell.org Trying 192.94.73.20... Connected to ol.freeshell.org. Escape character is '^]'. sdf.lonestar.org (ttyp2) if new, login 'new' .. login: new Last login: Tue Jan 12 01:41:53 2010 from freeshell.org on ttyp2 Welcome to the SDF Public Access UNIX System - Est. 1987 You are the 21st guest today, logged in on 12-Jan-10 01:46:38. ***NOTICE*** ESKIMO NORTH customers and GREX members are welcome here! We hope you will make SDF your new $HOME Are you using Windows 2K or XP? (Y/N) n NO Please press your BACKSPACE key: PLEASE READ THIS CAREFULLY: You are about to create a UNIX shell account. This account may be unlike anything you've used before. We urge you to carefully read all the text displayed on your terminal, as it will aide you in your learning. We also encourage you to try all the commands available with your new account. There are many types of games, applications and utilities you will be able to instantly run in just a few moments. If you are looking for a particular command or version of a command that we do not have, there are ways to request that it be installed. We also offer DIALUP access in the USA and Canada which you will be able to learn about shortly. Be patient, read what is displayed - Explore and Enjoy! [RETURN] First, you need to choose a LOGIN. A LOGIN allows you to LOG IN to the system. Your LOGIN can be 1 to 8 characters in length and can be composed of alpha numeric characters. What would you like to use for your login? demomac Congratulations, you've picked a CLEAN user id. What does this mean? We perform daily audits on our mailserver which allows us to check on attempts of email delivery for non-existent logins, like 'demomac'. If 'demomac' was targetted for email, it would likely have been UCE or spam. However, there have been NO attempts to email '[email protected]' in the past 240 days, which means it is a SPAM FREE login. Please protect it and enjoy! continue? (yes/no) yes **limitations and policy** _______________________________________________________________________ ____ The SDF Public Access UNIX System, a 501(c)7 non-profit corporation, reserves the right to deny access to anyone regardless if the user has made a donation or paid membership dues. If a user's activities are interferring with another user or users (on this system or on another) the user in question will have their account access limited or possibly removed. Spamming of any sort is not permitted and would result in account removal. Illegal activities that actively involve SDF (id est, using SDF to run crack or for guessing passwords and/or trading copyrighted work) will most likely result in account removal. The SDF Public Access UNIX System makes no guarantees in the reliability or preservation of account accessibility, email sent or received, files uploaded or created by online editing or compilation. That being said, data loss should only occur during a catastrophic hardware failure in which critical files would be restored from tape archives. Members of the SDF Public Access UNIX System are expected to conduct themselves in an appropriate and reasonable manner when using our facilities. Lifetime ARPA membership is based on the lifetime of SDF, not of the user and is non-transferable. SDF has existed since 1987 and with your support it just might out live you. ;-) Any illegal activities which includes, but certainly isn't limited to spamming, portflooding, portscanning, irc bots or unattended processes intended as a bot, encryption cracking, unauthorised connections to remote hosts and any sort of scam can really not be tolerated here. Why? Because there are many here on this system that can suffer from this sort of abuse. If you want to use SDF, you really have to care about this system and the people here. If you don't want to care, then you really shouldn't use this resource. I agree with your policy and accept it (yes/no): yes By agreeing and accepting our policy we trust you to follow it. Thank you and be responsible! [RETURN] EIGHT VERY SIMPLE QUESTIONS: Please provide the following information. Your honesty is requested as it is critical in maintaining the integrity of our system. New accounts with bogus information may be purged *without* warning. CTRL-U will clear input .. Your Full Name: Al Boss Year of Birth: 1960 Postal Zip Code: 98126 Are you a K-12, University faculty member or student? (y/n) y YES % SDF offers a very special and completely free full shell membership to educators who use SDF as part of their classroom curriculum. This free membership provides the students with access to the C/C++ compiler, python, perl, network utilities and much more. To see if you qualify for this program, check out the <TEACH> section of the 'faq'. Are you a Amateur Radio Operator? (y/n) n NO Do you use Analogue, ISDN Dialup or DSL? (y/n) n NO Do you play MUDs, MOOs or MORPG? (y/n) n NO Would you like to use features for the aurally or visually impaired? (y/ n) n NO Where did you hear about SDF? Al Boss, South Seattle Community College Login : demomac Name : Al Boss YoB : 1960 Origin : 98126 E-mail : [email protected] IRC : irc.freeshell.org WWW URL : http://demomac.freeshell.org (after validation) WWW Gopher : gopher://freeshell.org/users/demomac (after validation) Webmail : https://webmail.freeshell.org Twitter : http://twitter.com/sdf_pubnix Create this account? (y/n) y YES You now need to set your password. You can enter whatever you'd like, but we recommend using something that is difficult to guess. NOTE! NO ONE, NOT EVEN AN ADMINISTRATOR, SHOULD EVER NEED TO ASK YOU FOR YOUR PASSWORD. If someone does, just ignore them! If you try to set an empty or blank password, you will not be able to login securely via SSH. New password: Re-type new password: Adding password for user demomac Creating login, please wait [Negotiating] Established! Sending update, please wait [Negotiating] Established! Creating your directories /udd/d/demomac, /www/d/demomac Welcome to the SDF, demomac! HINT - it is imperative that you actually READ the text printed on your screen. By doing so you will understand what the SDF has to offer you. If you do not read or explore you will most likely have no clue .. be an explorer and enjoy SDF! Also, would you like to be listed in the SDF User Map Project? You can do so anonymously, if you wish, at: http://sdf1.org/map (continue) Picking a host to login to .. using otaku.freeshell.org Attempting a secure connection to otaku.freeshell.org .. (If this doesn't work, connect back using 'tty.freeshell.org') demomac@otaku's password: [ 'demomac' is not set to expire ] Please press your BACKSPACE key: The Moon is Waning Crescent (9% of Full) .-.-.-' .-'@ /@@@ ./ /@@ /@@@@ |@@@@ /@@@@@ Last Quarter + | @@@ 4 15:18:31 |@ @@ New Moon | 3 5:12:41 \ . @ | \ \ o `\ \ `-. `-. `-`-- [CONTINUE] Type Type Type Type 'help' for Commands. 'com' to chat with other users. 'ttytter' to listen to Twitter Tweets anonymously. 'mud' to play the SDFmud. Did you know you can become a permanent LIFETIME member of SDF by making a onetime donation of $36? Type 'arpa' for more info! otaku:/udd/d/demomac> exit You may close this window for now. Make certain to save your login and password someplace where you can find it. Checkpoint: Email your login (not your password) to [email protected] so I can complete your setup as a student in this class. Part two: After you hear back from me that your account has been validated Once I've let you know your account is validated, go to the terminal again and this time type: ssh tty.freeshell.org (Note: this is not the same address we use for setup.) The first time you log onto the site after you're set up, type the following after you log in: mkhomepg (then press the "enter" key on your keyboard) That step will set up a Website directory for you. More on this later in the course. sdf.lonestar.org (pts/56) if new, login 'new' .. login: demowin Password: you have 1 pending notification type 'notes -r' to retrieve it Welcome to the SDF Public Access UNIX system. (est. 1987) For quick help, type 'help' For detailed questions and answers, type 'faq' For user discussion boards, type 'bboard' For interactive discussions, type 'com' For adding yourself to the SDF User Map, see http://sdf1.org/map to create your URL http://demowin.freeshell.org, type 'mkhomepg' Explore and Enjoy! $ $ mkhomepg Creating symbolic link. Setting appropriate directory permissions for /www/af/d/demowin Setting owner and group. Setting file permissions. Done! Use 'mkhomepg -p' if you ever need to 'reset' your file permissions in the future. Once you've uploaded your webpages, run 'mkhomepg -a' to create your custom URL. Your page will then be accessible to the world. $ $ exit In this class, we will simply be using this service as a place to store and edit Web files. By storing and editing directly on the server, we avoid having to use the hard drives of the computers on campus, which have been problematic in the past, particularly with regard to computer viruses getting transmitted by way of thumb drives. Those of you who are technically inclined and curious can read the FAQ on the site to see what you just signed up for. I will warn you now, this may seem a little intimidating at first, or a little arcane. It's not as pretty as point-and-clicking around in Windows. Luckily, there are only about a dozen different things you'll have to do within the shell account, so even if it is intimidating it should not be overwhelming for very long. For initial Website setup, see the instructions for server account setup. See the instructions for ongoing daily use of the shell account for a rundown of what you need to do every time you're working on the site. Server account initial setup Logon We connect using SSH, which is a secure replacement for the telnet protocol. To log onto your server account to edit files: http://sdf.org/ssh/ When the computer asks you if you really want to do this , say "yes". Other options if working from your own computer: check the detailed instructions for other options available on a computer where you can install software (e.g. not the campus computers). If you use Microsoft Windows, it does not have a built -in SSH client, so you will need to install one (see below) or to use the browser -based one noted above. On Mac OS X, from the Finder, open the "Terminal" application. (It's in the "Applications" folder, inside the "Utilities" folder.) Type "ssh tty.sdf.org" and press the "Enter" key. In Linux, open a terminal window (command prompt window). Type "ssh tty.sdf.org" and press the "Enter" key. These are a number of Telnet/SSH clients you can install on your own computer, that have more features than the built-in methods mentioned above. For Windows, Putty is a free offering for telnet and its secure cousin, SSH; for Mac OS X free offerings include iTerm and MacTelnet. Unless your Web browser security settings are ridiulously high, you can also get to your server account via a Web browser by going to http://sdf.org/ssh/ and agreeing to all the questions about Java applets and fingerprints. Be advised that this version does not let you copy and paste from your computer, which makes it less than ideal, at least for me. Website directory setup (one-time) The first time you log onto the site after I've got you set up, type the following after you log in: mkhomepg (then press the "enter" key on your keyboard) That step will set up a Website directory for your files. The directory name will be: html Website directory activation (one-time) cd html (then press the "enter" key on your keyboard) mkdir archive (then press the "enter" key on your keyboard) cd archive (then press the "enter" key on your keyboard) pico test.html (then press the "enter" key on your keyboard) Type the following: <html> <head> <title>A simple Web page</title> </head> <body> <h1>Hello</h1> <p>This is a Web page.</p> </body> </html> Notice the menu at the bottom of the screen. The ^ means to hold down the "control" key and press the letter indicated . For example, the menu says: ^O Write Out That means hold down "control" and press the letter "O" on the keyboard. Do that now. "Write out" is what us normal people call "save". The computer offers to save the file under the existing name you gave it when you started, "test.html". That's okay for now, so just press the "enter" key. (If you wanted to save your work under another file name, you'd type in that file name instead, then press "enter".) That's all for now, so hold down "control" and press "x" to close the file you just saved. Now that you have put your first file into your html directory, type the following after you log in: mkhomepg -a (then press the "enter" key on your keyboard) That will get the server to activate your Website so it'll be available on the Internet . It can take a while for the Web server to activate for the first time, so if you get through this and can't see the expected results, go do something else for an hour or two and check back afterwards. If it's still not working, let me know: [email protected]. Next: mkhomepg -p (then press the "enter" key on your keyboard) Do that whenever you add a new file to your Website, it 's what makes the file visible. Now, let's see if that worked. In a Web browser (Microsoft Internet Explorer, Firefox, Safari, etc.), go to your Website. Its address will consist of your login name followed by a dot, then freeshell.org. For example, my login name is alboss, so my Website address (also known as a URL) is http://alboss.freeshell.org. (Notice there is not a "www" in that address. It won't work if you try to put one in.) When you go to that address right now, you should see the "archive" directory folder that you just created. Click it, and you should see the "test.html" page you created. Click that, and you should be looking at the code you just typed. Congratulations , you are a Web coder. If you're done, type "exit" (and press the "enter" key) to log off the server. Read working in the shell account (ongoing) for information on the day-to-day use of a shell account for this class. Setting up an xHTML template file There are certain tags that will appear in every page of xHTML you create. Rather than re-typing these every time you create a file, it 's much easier to create a single template from which you can base all your work. Because the editor in the shell account allows you to "read in" content from another file, it's easy to work with a template file without accidentally altering it. Initial setup of a template file in a shell account: 1. Copy the following text: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/ xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" /> <title>Title</title> </head> <body> <h1>Heading</h1> <p>Text</p> </body> </html> 2. Open your shell account a. http://sdf.org/ssh for Windows users; Mac/Linux users will get better results from the terminal, ssh tty.freeshell.org (enter) b. After logging in: i. cd html/current (enter) ii. pico 0 (enter) (that's a zero, not the letter O) iii. paste iv. control-x to quit Pico, press "enter" to save under the current name That's it! Ongoing use of a template file in a shell account: To create a new file from the template file you have created: Open your shell account a. http://sdf.org/ssh b. After logging in: i. cd html/current (enter) ii. To create a new file named newfile.html: 1. pico newfile.html (enter) (replace "newfile.html" with whatever name you want to use) 2. control-r, press the zero, press "enter" (this inserts the template content) As this course progresses and you find new things you'd like to include (or exclude) in any new pages you create, simply make the changes in the template file and they'll show up in all new files you create from it from that moment forward. The template file is named zero (the numeral 0) and is stored with everything else in your "current" folder. You can actually name the file anything you want; I just picked 0 because it's less typing. See also Working in the shell account (ongoing). Freehostia free Web space setup Note: these instructions are specific to setting up a free account with Freehostia. If you set up a paid account, purchase a domain name of your own, use another service, etc., then the procedure you'll need to follow will be slightly different from what's listed here. Check in with your provider's tech support for the specifics. The direct URL to the setup page for a free Web space is http://www.freehostia.com/signup.html? plan=92. If for any reason that doesn't work, go from their home page at http:// www.freehostia.com/, scroll down and pick the free plan. You'll probably have to pick the free plan again on the next page. (They'd rather you pay them for a bigger plan, of course, so they try to entice you here.) Related links Translating Freehostia's emailed message into English An illustrated guide to FTP'ing files to a site on Freehostia When you're done, they will send you an email whose goal appears to be to confuse you completely. Read translating Freehostia's emailed message into English to see the only two parts of that email that you really need to pay attention to. Translating Freehostia's emailed message into English What they say -------- Original Message -------Subject: Welcome to Free Hostia Date: Thu, 08 Jan 2009 04:45:02 +0000 From: Free Hostia <[email protected]> To: [email protected] What it means We spelled your name right. Dear Al Boss, Welcome to FreeHostia. We are one of the fastest growing free hosting providers and there is an understandable reason for this. We have one of the fastest servers, a fully featured free hosting plan with no forced ads and low-cost paid hosting plans with great features. For less than a year, we won more than 200 000 users over. You will have the chance to see for yourself that we provide a bullet-proof quality service. We will be very happy if you spread the word by putting a link or a small banner on your site, which points back to FreeHostia (you will find them here: http://freehostia.com/linkus.html), or simply tell your friends and your web site visitors about us and share your opinion about FreeHostia. This way you will help us achieve our ultimate goal - to provide reliable and fast hosting with amazing 24/7 support to as many people as possible. ------------------------------------------------- Commercial message... This email contains important data about your web hosting account for aboss.freehostia.com. ------------------------------------------------Access the Control Panel here: http://cp.freehostia.com/ members/ Blah blah blah blah blah not used for anything we're doing in this class blah blah blah blah blah blah. Client ID: yyyyyy Login: albos Password: xxxxxx ------------------------------------------------Your website will be accessible here: http:// aboss.freehostia.com Something useful! The Internet address for your site. IMPORTANT!!! Not really important. Please change the DNS of your domain to the following and allow 24-48 hours for the DNS update: We don't know how to talk to regular people so dns1.freehostia.com dns2.freehostia.com ------------------------------------------------EMAIL information: To create emails please login to the Control Panel and click 'Email Manager'. POP3 server: aboss.freehostia.com SMTP server: If use the FREE hosting plan, than you can't use our SMTP server. If you use any of the paid plans - the SMTP server is aboss.freehostia.com IMPORTANT - the SMTP server requires login and password. In Outlook select 'My server requires authentication '. In other email clients this option has a different name. we're including a bunch of technical information here that pretty much only pertains to you if you are running your own Web server in your living room, or if you're setting up your own email accounts through them. ------------------------------------------------FTP information: FTP Host: aboss.freehostia.com Login: albos Password: xxxxxx This is the part you need to be able to FTP (transfer) your files onto the server. ------------------------------------------------To use the Front Page extensions select 'Front Page extensions' from the Control Panel and manage the extensions. ------------------------------------------------- Friends don't let friends use Front Page. Please take the time to read the beginner's guide in our support forum if you are using our services for the first time: http:// forum.freehostia.com/viewtopic.php?t=240 If you have any problems, here's how to get help. If you have any questions please login to the Control Panel and open a ticket from the Help Center. Our 24/7 support will answer you shortly. Best Regards Free Hostia Team Expectations Individual blogs Status reports are one of the few things in the corporate world that wastes as much time as meetings and has as little use as mission statements. Without them, or their academic equivalent, the weekly quiz, though, I need some way to tell you've at least been thinking about this class and about the work you're doing for it, as well as just some signs of life out of you and maybe some indication that you've learned something new. So, for this class, each of you will maintain entries in a Weblog, with at least weekly updates, that will be a sort of running summary of what you've picked up (or are struggling with) as you try to survive CTN 160, what your latest accomplishments for the class have been, what you'd like to do next week, what does or doesn't make sense, and anything else that would answer the questions , "How's it going for you? What's your current status regarding the work for the class?" Likewise, if you're sick, distracted, behind, or anything like that, the blog is a place to report it. "I've been barfing like crazy and haven't been able to work on anything all week," is a legitimate status report; it tells me what's going on with you and helps me understand what I should be expecting to find on your site right now. Silence tells me nothing. Update: Monday, February 15, 2010, 01:14 PM The blog module on the course Website has become unstable, due to a software problem. Just make a simple HTML report page on freeshell.org, linked from your index.html page, and post your weekly reports there . Mine is at http://alboss.freeshell.org/current/blog.html if you want to see an example. Related information: Course syllabus Part one expectations Part corresponds roughly to a week. Sometimes the individual pace is a bit slower or faster, which is why they're not labled week in the first place . Still, that's the baseline measurement, figure each part should take about a week. There's a lot of setup to take care of the first week of the quarter. Don't panic if it's not all completed by the end of the first week; there are always glitches. Still, this can be a fastpaced course, and you'll get better results if you don't fall far behind. Begin at http://tiny.cc/ctn160, or, if that short url doesn't work, the actual location is http://www.e-socrates.org/course/view.php?id=297. (We're using Moodle courseware hosted at e-Socrates.org for the class.) Follow the instructions to log on. If your logon doesn't work and you know you are registered for the course, there are helpdesk links and phone numbers. If you're not able to log on (for example, if your official registration is delayed for some reason), then use the course backup site at http:// www.sisypheans.org/ctn160/. It usually takes about a week to get things set up here on with the courseware accounts, email accounts, registration, campus logins, etc. Let me know if you have any problems accessing the course. Read the course syllabus Set up a Web server account (as noted in syllabus; specific steps are in the server account setup instructions). Fill out your profile on the course Website (left-hand navigation , there's a "Profile" link). At the very least, include: Your email address in the email field (required, but you can hide it via a control on this page) Why are you taking the CTN160 class? What were you doing before you became a student at SSCC? Have you spent a lot of time working with computers? Have you spent a lot of time online? Read Background: the Internet. Read Keeping safe from viruses. Read Reference, week one: foundation information. If you don't have an account set up at http://students.southseattle.edu, consider going to that site and following the instructions to set up your email and a portal page ; you'll likely need use of those for several of your classes. There are several links to help if you need assistance. Note: The SSCC portal through students .southseattle.edu is not a requirement for my class. I include it in the list of requests for the first week for a few small reasons: some other class might want you to have it but not tell you for a while, and I'd just as soon it get set up for you quickly. if you have an account on there, my southseattle.edu email will automatically fill you in when I'm trying to email you, so I don't have to go hunting for your email address. I can always email from within Moodle itself, but if you've tried that you'll notice that Moodle's not as fully-featured an email tool as an actual email tool would be. It does the job , but nothing special. you can use the applications there to create and store documents without having to move them between campus computers and your home computer or any other computers you might be using . some people like to keep their class email out of their regular email stream it's a Gmail-based tool, which means it has some amazing search capabilities and tagging tools within it. It's really hard to put an email in there somewhere that it won't be easy to find later. If you get a lot of email, then that search ability might be nice. if it does throw some course mail into the spam filter, it's easier to find than it is in some other mail providers, which will just block it and never tell you they did so. All that said, I'll repeat--it's not a requirement for me. As long as I can reach you by way of *some* email address, I'm fine. Parts two-three expectations Do not panic. This is a lot of information. It will take us some time to cover it all. Read the background material on how search tools work. Read the reference material on file transfer protocol (FTP). Keep the instructions from your Internet site provider handy. Read the reference material on basic xHTML, and work your way through the checkpoints. The goal for week two is to make it through the material and checkpoints up to the beginning of the CSS materials in the basic xHTML reference section. Bring any problems to the course question and answer forum Read the section on how we will use blogs in this class. Under the blog tab in your profile, start getting familiar with the blog, and start an entry for yourself. We'll be using the blogs to maintain a class /project log. Continue working through the basic xHTML reference section through week three, finishing up the CSS information and the related CSS checkpoints. (This will likely eat into part of the following week as well; it's a huge amount of information to absorb.) Read through the reference material on usability. Participate in the Usability Discussion forum. Instructions for what to do are listed under "Lab: Usability discussion". Part four expectations Finish up checkpoints for basic xHTML if you haven't already done so. Read the reference materials on Website planning /design. The checkpoint for this section--creating all your site planning materials for the class project--is very involved, and counts for a significant portion of your grade. Read the instructions carefully, and refer back to the reference materials as often as necessary. I expect everyone to get a start on this within the week, although I realize that it might be a while before it's completed. I will be checking your sites for it, though, so please don't procrastinate. Part five expectations Continue working on all your site planning materials for the class project. Read the reference materials on adding images to Web pages. You'll need this information to complete the site planning materials, since there are images needed as part of that assignment. Read the reference materials on use of color on Web pages. This is also information you'll likely need in your site planning. Begin work on your Bad Website, and keep adding to it for the rest of the quarter, whenever you come up with new material or new ideas. Remember to add blog entries to keep me up to date with your progress. If your Website URL isn't already on the directory page, add it to the "What's your URL?" forum so I can update the directory to include your site address. Project planning Review the course goal / project. Think about it a bit. Keep the Website planning and overarching design notes handy; you'll need them. Create a new xHTML page, on which you will be describing your plans for your project. Give it an appropriate title, heading, and whatever else you wish. Put a hyperlink from your index.html page to this new course project page. Apply the pre-design questions to your own course project Web site plans, and put this information onto the Web page you're creating. The pre-design will need to convey a clear idea of what your message is, who you are trying to reach and what the objectives and goals of your site will be. Most people do this part as a straight question-and-answer format. You're welcome to do otherwise, but, in the spirit of good Web design, you have to make sure that it's clear to me that you've answered all the questions. Also, do not fret over being held to exactly what you put here today. It's a Web page, for Pete's sake! You can change it --in fact, you're supposed to change it --in the light of new information, new ideas, new realities, etc. Answer the pre-design questions as they pertain to your planned class project Website. What is the idea for your final project? Why are you building this site? (Site description or statement of purpose) Who is your audience? Who are you? (Or, who do you want your audience to believe you are?) What are the objectives of this site? (What are you trying to accomplish?) What kind of information will be on this site? (Outline of the information) How will the site affect the user? (Will they feel secure? Outraged? Impressed? Informed? A need to take action? An irresistible urge to spend money on your goods and services?) Create two diagrams, using the instructions discussed in the class notes, : a (site) flow diagram for your Web site, and a (work) flow diagram for your plan for how you're going to create the site. (The first flow diagram shows how people are going to move through the Web site, how they will navigate from section to section and how the sections will be linked together. The second one shows the steps you'll take to create the site.) Keep it as simple as is reasonable. We're not--as far as I know--planning the site for either the Metropolitan Museum of Art or the New England Journal of Medicine. Upload the diagrams to your FTP account . (Word, Powerpoint, image files, etc. are fine, anything I can open is acceptable--unless it's a virus or something.) If the diagrams are image files (.png, .gif, or .jpg format), and if you've read ahead, you are welcome to use <img /> tags to put the images directly into your xHTML. Otherwise, have descriptive and functioning hyperlinks from your project page to each image. Test your links before you open the page up for review! I said descriptive and functioning. Links that don't work will not endear you to your reviewers--in this case, the rest of the class, and me. Add a wireframe, as is described in the class notes, to the planning page. Develop storyboards for each page or major section of your Web site. The story board should adequately show the look and feel , as well as navigation and content placement, for each page in your Web site. Approach this project as though you are actually working for a client. Handwritten, messy pre-design work would obviously not sit well with a client. Handwritten is okay, messy isn't a good idea. This is good practice for the real world, even if you only intend to design Web sites for yourself. Turn in the storyboard(s) electronically, using a program such as Photoshop, Paint, or Word, or draw the storyboard(s) using pen and paper and scan them in . Link the documents or images to your main project plan page (the one you've been creating here), as is described above. Upload all documents, including the html page, and check to make sure everything is there. Exhale. You did it! Start collecting your content and thinking about how you will be coding this project. This Web site has to be finished and ready to present the last week of class. Bad Web pages Bad Web pages (ongoing assignment): use what you've learned in class so far to create the most awful, unusable Web pages you can. Not something as simple as a page that's blank, but something that has a lot of really bad HTML ideas. This assignment starts as soon as you read this and continues throughout the quarter. Keep adding new features to it as you learn them or think of them. Be prepared to share these pages with the class any time you're asked, and be ready to point out the most horrid features you've included and ready to explain what underlying details there are that make it particularly bad. See what others have done before you if you need inspiration. Part six expectations Continue working on all your site planning materials for the class project. Read the reference materials on CSS Positioning (CSS-P). Begin applying CSS positioning to the design you planned in your storyboards. Continue work on your Bad Website, adding to it whenever you come up with new material or new ideas. Remember to add blog entries to keep me up to date with your progress. Part seven expectations Continue working on your class project. Read the reference materials on tables and data presentation. Incorporatate a table into either your class project site or your Bad WebsitePart 7 expectations. Continue work on your Bad Website, adding to it whenever you come up with new material or new ideas. Remember to add blog entries to keep me up to date with your progress. Part eight expectations Continue working on your class project. Make sure you're running your code through the validator at http://validator.w3.org/. Fix what you can, post the URL to the Q & A forum when you hit roadblocks and we'll see if we can help. Remember to add blog entries to keep me up to date with your progress. Read the reference materials on inline frames. Incorporatate an inline frame into either your class project site or your Bad Website. It doesn't have to be any fancier than your project needs; basic is fine. My goal is mostly for you to have some exposure to the idea and to see how it works; you might need it someday. Continue work on your Bad Website, adding to it whenever you come up with new material or new ideas. Part nine expectations Continue working on your class project. Make sure you're running your code through the validator at http://validator.w3.org/. Fix what you can, post the URL to the Q & A forum when you hit roadblocks and we'll see if we can help. Remember to add blog entries to keep me up to date with your progress. Read the reference materials on xhtml forms. Incorporatate a form into either your class project site or your Bad Website. It doesn't have to be any fancier than your project needs; basic is fine. My goal is mostly for you to have some exposure to the idea and to see how it works; you might need it someday. Read the reference materials on interactivity (Javascript etc.). Find a script to add to one of your sites. This is just a find-copy-paste-save request; not a huge deal. If the script doesn't work, throw it out and try another. Continue work on your Bad Website, adding to it whenever you come up with new material or new ideas. Background and reference materials Background: the Internet Click a section heading to see its content. View all sections | Collapse all sections Understanding the Internet A new communications technology was developed that allowed people to communicate almost instantly across great distances, in effect shrinking the world faster and further than ever before. A worldwide communications network whose cables spanned continents and oceans, it revolutionised business practice, gave rise to new forms of crime, and inundated its users with a deluge of information.. . . Attitudes toward everything from news gathering to diplomacy had to be completely rethought. Meanwhile, out on the wires, a technological subculture with its own customs and vocabulary was establishing itself. So, we're talking about an earth-changing, almost instantaneous communication system that suddenly allowed people and governments all over the world to send and receive messages about politics, war, illness , and family events. The government has tried and failed to control it, and its revolutionary nature is trumpeted loudly by its backers. Whoops, wait a minute; that's from Tom Standage Walker's book, The Victorian Internet: The Remarkable Story of the Telegraph and the Nineteenth Century's On-Line Pioneers. We're supposed to be looking at the history of the Internet, not the telegraph. The Internet has a rich and exciting history, founded on mental illness , violence and international intrigue, merged together with the innovative new technology of the telegraph system, but it wasn't really designed to withstand a nuclear war. Huh? Here's the story of legend: The Internet actually owes its beginnings to paranoia and the Cold War. The US government needed a way to communicate in the aftermath of a nuclear war. At that time, much of the government's secure communication was "point to point": information goes from one point to another in a relatively straight line, such as when you string a wire between the two places trying to talk. Point ------------------------------------ Point Unfortunately, with point to point communication, if any part of the network between the two points was destroyed, so was communication. What was needed was a network where data could find alternative routes even if a portion of that network got blown to smithereens. The trouble is , it didn't really happen that way. It is true that the RAND Corporation published a series of studies starting in 1960, about secure communications technologies that could enable a military communications network to withstand a nuclear attack . They described two key ideas that worked their way into our online lives: first, use of a decentralized network with multiple paths between any two points; and second, dividing complete user messages into message blocks before sending them into the network. This first allowed the elimination of single points of failure, and enabled the network to automatically and efficiently work around any failures. Meanwhile, in 1969, the Department of Defense's Advanced Research Project Agency (ARPA) developed a thing which they eventually called ARPANET. It was supposed to allow ARPA-sponsored researchers in various locations to use various computers which ARPA was providing, and its other main purpose was to quickly make new software and other results widely available. This network used a system called "packet switching". With packet switching, information is split up into packets. Even if direct communication was cut off, these "smart packets ", each with its own addressing information ,could still find their way to their final destination. Previously, data communication used circuit switching, as in the old typical telephone circuit, where a dedicated circuit is tied up for the duration of the call and communication is only possible with the single party on the other end of the circuit. At first the ARPANET was used by scientist and researchers at government-funded institutions. It slowly grew in popularity and began to evolve into the modern-day Internet, with the addition of inventions like email (in 1972) and TCP/IP (Transmission control protocol Internet Protocol, a set of protocols that allowed different networks to communicate with each other). As the modern -day Internet grew, the old ARPANET was decommissioned. The Internet Society writes about the merger of technical ideas that produced the ARPANET in A Brief History of the Internet, and states in a note: "It was from the RAND study that the false rumor started claiming that the ARPANET was somehow related to building a network resistant to nuclear war. This was never true of the ARPANET, only the unrelated RAND study on secure voice considered nuclear war. However , the later work on Internetting did emphasize robustness and survivability, including the capability to withstand losses of large portions of the underlying networks." The ARPANET was designed to survive network losses, but the main reason was actually that the switching nodes and network links were not highly reliable, even without any nuclear attacks. In 1989 Tim Berners-Lee, a scientist at CERN European Laboratory for Particle Physics, developed an idea that was to become the World-Wide Web. Eventually, as commercial restrictions were lifted from the Internet, new developments made ease of use less of an issue, and the World-Wide Web took off, making it the everyday tool that it is today. The Internet Archive, http://www.archive.org/, has saved actual content from the Internet over time. You can view Websites from 1995, re-live home video delivery from kozmo.com, and a lot more . Much of the above history comes via the APRANET history section of Wikipedia, the free encyclopedia. Next section What is the Internet? The Internet is basically a global network of computers all using protocols to communicate with each other via telephone wires (mostly). A "protocol" is a set of rules used for communication. On the Internet, two of the main protocols are TCP (Transmission Control Protocol) and IP (Internet Protocol). These protocols are the glue that holds the Internet together. TCP/IP protocols transcend different languages, different software and different operating systems. A PC user in Sweden can communicate and access the same resources via the Internet as a Mac user in Japan. Other protocols are also used to provide different services on the Internet. These protocols include: Telnet (computer to computer communication) Email (electronic mail) FTP (file transfer protocol--exchanging files between computers) Gopher (browsing hierarchical menus) and of course, HTTP or hypertext transfer protocol (the World-Wide Web runs on http) Previous | Next How does the World-Wide Web Work? The World-Wide Web is a part of the Internet that conveys information by means of sound, graphics, text, video, animation and interactivity . Navigation uses a system of hyperlinks: when users click on a linked word or graphic they are taken to another place. Web documents are written in a coding language called HTML, Hypertext Markup Language. A software program known as a Web browser reads the HTML and translates it into what you see on your computer screen. Popular Web browsers include Microsoft Internet Explorer, Mozilla/Firefox, Opera, Safari, and Google Chrome . All of the material on the World-Wide Web is actually physically living on a Web server. A Web server is a computer on the Internet that makes information available to other computers, via hypertext transfer protocol. Browser Runs on these operating systems Notes Microsoft Internet Explorer Microsoft Windows Most popular browser for Windows, though Firefox is eating into its market share. Because this browser is the most common Windows browser and because it is tied directly into that operating system, it's a favorite target for virus writers and other security breaches. Until version 7, MSIE was a full release behind the others, and even MSIE 7 doesn't render some of the more advanced Cascading Style Sheets (CSS) as expected. Mozilla and Firefox MS Windows, Mac OS, Linux, Unix, and most others Open-source "guts" of the old Netscape browser, but considerably smaller, faster, and more up-todate. The Netscape browser is no longer in production, having been eclipsed by Firefox. Opera MS Windows, Mac OS, Linux, Unix, and most others, including several cell phones and PDAs Traditionally the smallest, fastest, and most standards-compliant of the major browsers. Mac versions tend to lag behind Windows and Linux versions in development. Opera is by far the most popular browser for cell phones, which will soon overcome computers as the most common way of accessing the Web. Safari Mac OS X, Windows Of note because, like Internet Explorer, it's written by the same people who wrote the operating system (Apple Mac OS X, in this case). It's among the faster browsers, likely in part because it's newer than most and learned from their mistakes. Google Chrome Windows; a Mac version is in development (updated Jan. 2009) Google's entry into the browser wars is now the newest of the major browsers. It's another of the small, lightning-fast options, and brings several new innovations to the table. MS Windows, Mac OS. AOL subscribers only. A modified version of MS Internet Explorer, with some functionality removed and some proprietary AOL functions added. Although America OnLine is no longer the Internet gateway powerhouse it once was, their browser is still of note because a couple million people (many of whom are new to the Internet or not very technically savvy) use it. AOL Security--Browsing Safely: Understanding Active Content and Cookies The following information is quoted from CERT at Carnegie Mellon University. Copyright info etc. is at the end of the article. Many people browse the Internet without much thought to what is happening behind the scenes. Active content and cookies are common elements that may pose hidden risks when viewed in a browser or email client. What is active content? To increase functionality or add design embellishments, web sites often rely on scripts that execute programs within the web browser. This active content can be used to create "splash pages" or options like drop-down menus. Unfortunately, these scripts are often a way for attackers to download or execute malicious code on a user's computer. * JavaScript - JavaScript is just one of many web scripts (other examples are VBScript, ECMAScript, and JScript) and is probably the most recognized. Used on almost every web site now, JavaScript and other scripts are popular because users expect the functionality and "look" that it provides, and it's easy to incorporate (many common software programs for building web sites have the capability to add JavaScript features with little effort or knowledge required of the user). However, because of these reasons, attackers can manipulate it to their own purposes. A popular type of attack that relies on JavaScript involves redirecting users from a legitimate web site to a malicious one that may download viruses or collect personal information. * Java and ActiveX controls - Different from JavaScript, Java and ActiveX controls are actual programs that reside on your computer or be downloaded over the network into your browser. If executed by attackers, untrustworthy ActiveX controls may be able to do anything on your computer that you can do (such as running spyware and collecting personal information, connecting to other computers, and potentially doing other damage). Java applets usually run in a more restricted environment, but if that environment isn't secure, then malicious Java applets may create opportunities for attack as well. JavaScript and other forms of active content are not always dangerous, but they are common tools for attackers. You can prevent active content from running in most browsers, but realize that the added security may limit functionality and break features of some sites you visit. Before clicking on a link to a web site that you are not familiar with or do not trust , take the precaution of disabling active content. These same risks may also apply to the email program you use. Many email clients use the same programs as web browsers to display HTML, so vulnerabilities that affect active content like JavaScript and ActiveX often apply to email. Viewing messages as plain text may resolve this problem. What are cookies? When you browse the Internet, information about your computer may be collected and stored. This information might be general information about your computer (such as IP address, the domain you used to connect (e.g., .edu, .com, .net), and the type of browser you used). It might also be more specific information about your browsing habits (such as the last time you visited a particular web site or your personal preferences for viewing that site). Cookies can be saved for varying lengths of time: * Session cookies - Session cookies store information only as long as you're using the browser; once you close the browser, the information is erased. The primary purpose of session cookies is to help with navigation, such as by indicating whether or not you've already visited a particular page and retaining information about your preferences once you've visited a page. * Persistent cookies - Persistent cookies are stored on your computer so that your personal preferences can be retained. In most browsers, you can adjust the length of time that persistent cookies are stored. It is because of these cookies that your email address appears by default when you open your Yahoo or Hotmail email account, or your personalized home page appears when you visit your favorite online merchant. If an attacker gains access to your computer, he or she may be able to gather personal information about you through these files. To increase your level of security, consider adjusting your privacy and security settings to block or limit cookies in your web browser. To make sure that other sites are not collecting personal information about you without your knowledge, choose to only allow cookies for the web site you are visiting; block or limit cookies from a thirdparty. If you are using a public computer, you should make sure that cookies are disabled to prevent other people from accessing or using your personal information. _________________________________________________________________ Authors: Mindi McDowell _________________________________________________________________ http://www.us-cert.gov/cas/tips/ST04-012.html Copyright Carnegie Mellon University. Terms of use: http://www.us-cert.gov/legal.html Previous | Next URLs When you're going to a particular site on the Internet, it is easiest if you know the exact address or location . On the World-Wide Web , addresses are called Uniform Resource Locators (or Universal Resource Locators; people on the Web seldom agree on anything) or URLs. Everything that you see on the WWW, including Web pages, graphics, sound files, etc., has a unique URL. By understanding the different parts of a URL you can read addresses, evaluate information and sometimes even accurately guess at a Web site's address. Scheme Domain File Path http:// www.whatever.com /home/index.html The file path indicates where on the host computer or server that the information is The most common located. A / scheme on the indicates the WWW is http://. presence of a This stands for directory. A URL can Common top-level hypertext transfer have multiple domains that you will directories. protocol and encounter include indicates that the Occasionally you will .edu for educational, also encounter a ~ resource is a Web .com for commercial or tilde, usually page. businesses, .org for indicating that the Other schemes that nonprofits, .gov for information is in a you might encounter US government, .net personal account. include gopher:// , for networks and .mil telnet:// and Actual files end with for the US military. ftp:// an extension which Restrictions denotes the type of on .edu, .gov, The scheme indicates what type of resource you are viewing. The domain tells us what organization is hosting the site. It can sometimes also tell us what type of organization or the geographic location of the host. file. Most often on the WWW one sees .html or .htm , the file extension for a Web page. Other common extensions include .gif, .jpg, or .png for graphic files, .au, .wav, .ram and Outside the US two .mp3 for audio files, letter country codes .txt for text files, are used to indicate .pdf for portable country of origin, For document files, .jsp instance .jp is the for Java server country code for pages and .asp or Japan and .uk for the .aspx for active United Kingdom. server files. and .mil ensure that these are only used by these respective agencies. No one checks to ensure .org goes to a nonprofit, .com to a commercial enterprise, or .net to a network, though. What's the stuff in front of the .com (or .org or .net or .whatever )? The part immediately preceding it is the name that someone chose to register (microsoft.com, southseattle.org, washington.edu). The part prior to that is a naming convention used on the domain naming tables, it's chosen by whomever sets up the domain and is often fairly meaningless. (For example, http://www.yahoo.com reaches Yahoo!, but then so does http://yahoo.com. http://groups.yahoo.com/ reaches another computer on the Yahoo! system. The www. is not a required part of a Web address. It's just a cruel joke to make you sound like Elmer Fudd when you say "www".) Because all domain names are registered, information about who owns a domain name or URL can be checked with a WHOIS search. WHOIS searches can be performed at a great many sites, including Network Solutions, http://www.networksolutions.com/cgibin/whois/whois, and Uwhois, http://www.uwhois.com. Previous | Next IP Numbers The Internet Protocol system, (IP) uses unique addresses called IP numbers, to identify computers on the Internet and route information from one computer to another. IP numbers contain four parts, each separated by a decimal. Each part contains a number between 0 and 255. 117.56.18.200 IP Number Initially, IP numbers were the only addressing system for the sites on the World-Wide Web. It was rather awkward it was to remember complex sequences of numbers to go to your favorite place. Fortunately, for example, the exciting url http://206.222.66.41 was finally replaced by the much easier-to-remember http://www.yahoo.com, thanks to the Domain Name System. The Domain Name System or (DNS) was developed as an easier way to keep track of Internet addresses. DNS uses letters and words instead of numbers. IP numbers are actually still what the Internet uses to route traffic. Computers called DNS Servers allow cross-referencing between DNS and IP numbers. When you type in a URL the DNS servers find the correct IP number and bring up the Web page. Previous Reference, week one: foundation information Some information and resources you'll need to know about this quarter What's that stuff that goes at the top of a page of xHTML? Put these three items on all your xHTML pages: Very first lines: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> Somewhere within <head>... </head> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> Huh? This information helps the browser know what to do with the HTML--how to interpret the page. They're not absolutely necessary when doing pages for fellow native-English speaking Americans with standard software configurations, but since we're dealing with a World-Wide Web and an environment in which users can change the settings that determine how their computers deal with documents, these tags help ensure uniform behavior on the part of the Web browser software. The DOCTYPE tag tells the browser software that this will be an XHTML document using the World-Wide Web Coalition (W3C) Document Type Definition (DTD) for XHTML version 1, English. The META tag further specifies that the content will be text (HTML), using the International Standards Organization (ISO) character set for English/transitional alphabetic letters, numbers, etc. More information Copyright Copyright Website http://www.benedict.com/, "practical and relevant copyright information for anyone navigating the net." Pirated Sites: http://www.pirated-sites.com/, "side-by-side comparisons of web sites that are suspected of borrowing, copying or stealing copyright-protected content, design or code without permission." File extensions Microsoft Windows, by default, hides "File extensions" (the period and letters following it) from the user. A Word document called "Letter.doc" will show up as "Letter", a Web page called "mypage.html" will show up as "mypage", etc. There are many reasons why it's better to be able to see the whole file name. If you choose to do so, launch Windows Explorer, and from the "Tools" menu, choose "Folder Options", then click on the tab that says "View". Un-check the box that says "Hide file extensions for known file types". Internet safety, security, and sanity Working with computers on campus I recommend taking steps to avoid saving files on campus computers or thumb drives to move files from the campus computers to your personal computer . That's why we're using Freeshell.org accounts to edit our files remotely, directly on the Web server, for this class. You can check the Keeping safe from viruses on shared (campus) computers page on this Website for more information. Antivirus software Windows antivirus software: http://www.symantec.com/ (Norton Antivirus), http:// www.mcafee.com/ (McAfee VirusScan), http://free.avg.com (AVG Free, yes that's "free" as in "no money") Mac OS X antivirus software: http://www.symantec.com/ (Norton Antivirus), http:// www.mcafee.com/ (McAfee VirusScan), http://www.clamxav.com/ (ClamXav, which is free) Linux antivirus software: http://free.avg.com (AVG Free makes a Linux version as well as the Windows version) (You guys who are feeling all smug about using Mac OS or Linux, both of which have very few viruses compared to Windows, get real! We all need to be careful about viruses.) Firewall software comes built into operating systems these days, but please make sure yours is turned on. If you're really worried, there are lots of firewall software products available that claim to be better than the built-in ones. Google is your friend. Dihydrogen monoxide--learn the facts about this dangerous substance: http:// www.dhmo.org/ Urban Legends: purportal.com: search five of the most well-known sites dedicated to setting the record straight: Snopes Urban Legends Archive, About.com Urban Legends search, CIAC Hoax Database, CERT Computer Security Database, and Symantec (Real) Virus Encyclopedia Browsers: Opera, currently the most standards-compliant Web browser (and considerably smaller and faster than either Internet Explorer or Firefox, runs on just about anything except an iPhone): http://www.opera.com/ Firefox, the Mozilla Foundation's browser, currently about as popular as any of the Microsoft browsers, available for Windows, Mac OS, and Linux : http://www.firefox.com/ Safari, Apple's browser, available for Windows, Mac OS, and iPhone (and really fast): http://www.apple.com/safari/ Google Chrome, available for Windows and Intel-based Macintoshes (probably the fastest of all the browsers right now): http://www.google.com/chrome Usability: http://www.humanfactors.com/library/10tips.asp, http://www.uie.com/ Unix/Linux Despite the best wishes of our friends at Microsoft , most Web servers use the Unix operating system, or its cousin, Linux. It's wise (and financially rewarding) to know a few basic Unix commands. There's a good list at http://www.utexas.edu/learn/pub/ unix.html. Some Linux/Unix knowledge can considerably enhance your starting salary. We'll be using Unix shell accounts to edit files on our Unix Web server, so you'll come out of this class knowing some basics. Don't get caught doing this! A cautionary tale from Userfriendly.org. Seattle Community Colleges Web Student Facebook group We've set up a Facebook group as a place for faculty, web graduates and current students of all three Seattle Community Colleges Web programs to network. You all are welcome to join; it's an open group. http://www.facebook.com/group.php?gid=50745704722 Web server space and putting files there with FTP Click a section heading to see its content. View all sections | Collapse all sections Posting a site to the Web If you have not yet set up the Web directory in your freeshell.org account, now's the time to take care of that. Freeshell registration instructions and Freeshell Website setup instructions are available in these respective places. Our free Unix shell accounts include Website space sufficient for this class. We will be editing files directly on that server (bypassing the need to move files between SSCC campus computers and your home ). We will also be using FTP (file transfer protocol) to move files between your home computer and the server, or for uploading any images you've been working on from a campus computer lab. Other server space Created an xHTML document? Good for you! Of course, you won't be able to share your genius until you make that document available over the World Wide Web for everyone to see. It's time to use a Web server. A Web server is simply a computer that serves up content via the Internet, so other people can see it. If you want an xHTML file to be available to people over the Internet, you have to put it on a Web server. Generally, people get an account on a Web server where they may place documents for people to see over the Web. The account -holder gets an address to the server, a login name and a password, to ensure control over the material posted there. Files are transferred from one computer to another--from a hard drive or disk to Web space--via FTP, or File Transfer Protocol. We can FTP our Web documents to a Web server, thus making them available to anyone who has access to the World Wide Web . At one point, the only way to FTP was to use a detailed series of UNIX commands to connect to the server, locate the file on your host computer and then transfer it to your Web space. Next section Finding a home for your Website on the World-Wide Web After spending months learning HTML and weeks working , it seems a shame not to post your project for all to see. Additionally, posting your classwork to the Web means that you can work on it from virtually anywhere with Internet access. There are many different options available for Web site hosting. Determining which one is right for you depends on the purpose of your Web site and the amount of money you feel like spending. Your freeshell.org shell student accounts Our shell accounts on freeshell.org include Web server space. For our needs , that will be sufficient, but I have included a good deal of information below about other options for hosting sites, should you be wanting to do such a thing. The URL for your Website will be your login name, a dot, and freeshell .org. So, for example, login: alboss URL: http://alboss.freeshell.org/ Read working in the shell account (ongoing) for information on the day-to-day use of a shell account for this class. Other Web hosting options Professional Web hosting and domain name selection If your project will become the permanent Web page for a commercial organization or nonprofit, you'll need to register a domain name and enter into a hosting agreement with a reputable company. If you need to have your own domain name, there is no way around it--you have to pay the money and register a domain name. However, that can be done for under $10.00 if you shop around. Well, it seemed like a good idea at the time: THINK HARD before you pick a domain name. The good folks at Morrison & Foerster, Attorneys at Law, despite being a large international business, evidently have no children who listen to rap music and no exposure to the language of many parts of the urban United States. Lots of examples exist where someone should have thought a bit more about that domain name. Registering a domain name consists of checking to see if the name is available and then reserving that name through a domain name registrar. Using the a whois server on a registrar (such as the Network Solutions WHOIS server http:// www.networksolutions.com/), you can check to see if a domain is in use. If the name is available you will need to register the domain name. Until a few years ago, domain names cost about $70 for a two year registration and $35 per year after that. However with deregulation, third party vendors and lots of competition, you can register domain names for much less per year. (Check sites such as http://www.register4less.com, http://www.dotster.com/, http://www.godaddy.com/). These fees cover registration of the domain name only and not the space where your Web documents will be housed, although many registrars will sell you hosting services as well. To actually have space on a Web server, you will need to enter into a contract with an ISP (Internet Service Provider) or other Web hosting service. Whether your hosting is free or a fee -based service (usually a sign-up fee and/or monthly maintenance fee), they provide you password-protected space on their Web server. If you own a domain name then the IP address for your space will be registered with your domain. (This means anyone typing in your URL will go to your file space.) Some ISPs will also throw in free email addresses, tech support or e-commerce solutions. All ISPs are not created equal: some charge outrageous fees, while others limit the access they allow. Make sure you do your homework. Free/low-cost Web hosting Many places on the Web offer low-cost or free sites to small businesses or individuals. In some cases these "free" sites offset their cost by having you display their advertising on your Web page. To save a couple of bucks that you might otherwise put into luxuries like tuition, food, and shelter, this might not be such a bad trade-off, but even better is that for a small fee like $5/month, many will turn the ads off. The sites below offer free or low cost hosting. Of course, nothing is actually free; many of these sites may require you to display ads, participate in surveys or be subjected to mailing lists. Also keep in mind that the dot-com fallout is forcing these folks to change their business models without much forewarning to users. Freehostia http://www.freehostia.com/ Freehostia's no-cost option offers FTP access, disk space, POP3/IMAP E-mails, database, and script hosting, without ads. Consult the step-by-step setup instructions for more information. Tripod http://www.tripod.com Tripod includes FTP access, disk space and Web site add-ons. Their ads are obnoxious but can be turned off for a few dollars per month. Seattle Community Network http://www.scn.org/ Want limited Web space, no chance of having your name sold, and no advertising? SCN, a survivor of the "FreeNet" movement, has some of the strictest privacy rules you can find. It is a no-cost service begun in Seattle as a project of the local chapter of Computer Professionals for Social Responsibility (CPSR, http:// www.cpsr.org/) SCN offers email and Web space for individuals (1 MB) or organizations (5MB). Downsides: some of the long addresses, the Web-posting and editing interface, the limited space available. This is not a commercial business-hosting site, though many nonprofits do find a home there. Example: http://www.scn.org/westwood/ Brinkster http://www.brinkster.com/Hosting/Educational.aspx Brinkster's "Educational Package" has Web space, email support, and it allows for some fancy server stuff (.asp, server-side includes , Microsoft Access) that most free services don't offer. There are some restrictions, and they don't let you host audio or video files, but if you want a Windows hosting environment and some of the other extras, this might be the site for you. Ourmedia.org http://www.ourmedia.org/ Ourmedia.org promises they will host your files, of any size and any amount, forever. They are in a partnership with with Archive.org, which provides the space. Archive.org's goal is to keep a snapshot of the Web as an archive of what was there at any one time. Since they want to keep a copy of everything ever put on the Web anyway, it's to their advantage to host your content directly. Free Webspace .Net http://www.freewebspace.net/ FreeWebspace.Net maintains a large listing of other free Internet hosting options. For more information on opening a small business site or online store... Yahoo- Store!, at http://store.yahoo.com/, will host your Web store for something like $ 30 a month. Services include e-commerce solutions and advertising on the Yahoo Store site. eBay, at stores.eBay.com offers a similar service, from $15.95 a month up, depending on how much business you do. So does Amazon Marketplace from Amazon.com, and a few hundred others. Are you dreaming of opening your own e-commerce Web site? Believe it or not, you can open your own on-line store and never stock an ounce of inventory. Many on-line stores and merchants offer affiliate or associate programs. With an affiliate or associate program, you partner with an on-line retailer. You link to their merchandise and provide any marketing and encourage customers to buy their products. In exchange you receive a percentage of any transactions or purchases referred from your site. In some cases the transaction fee can be 15% or more .... So, if you link to an item on sale for $50 and encourage one person to buy the product, you get 15% of the sale price ($7.50). There are thousands of affiliate programs and you can sell all kinds of merchandise and services, from books and CDs to Web design and accounting services. For more information on affiliate and associate programs... About.com Affiliate Programs http://html.about.com/compute/html/msubaffiliateprograms.htm Amazon.com Associates http://www.amazon.com/associates/ Previous | Next Basic FTP software instructions Checkpoint, file transfer: Review your options. Illustrated, step-by-step demonstrations of how to use an FTP program to transfer files to an account on Freeshell.org Web-based FTP with Net2FTP (bonus: you can edit files without downloading them to a local computer. Make sure you save a backup copy first, just in Our student shell case!) accounts let us work Web-based FTP with UnlimitedFTP (http://myftp.utechsoft.com/)* (bonus: with html directly this client will save your FTP login information) on the server, but if Filezilla for Windows, Linux, Mac OS 10.5 and above (low-bandwidth; we want any images screenshots) How to use Filezilla** (Flash movie, broadband recommended) on our Websites we're going to have Many publicly available computers, including the ones in libraries and to put them onto Internet cafes, do not have a dedicated FTP program installed. A clever the server by workaround is to install Filezilla on a thumb drive and use that to transfer transferring the files. (Not recommended for SSCC campus computers, though, or any image files there. computers whose security you're uncertain of) That's done through How to install Filezilla Portable* (Flash movie, broadband recommended) FTP, or File Transfer Protocol. If you are * UnlimitedFTP requires Java. If you're at a computer that won't let you use it, use Net2FTP instead. working on your ** Special thanks to Clive Woodhouse for creating and sharing the Flashown computer, you based Filezilla tutorials. have the option of editing your html files on your computer, then transferring the saved files onto the Web server via FTP, instead of editing the files directly on the server. Those of you who cannot function without a mouse might prefer this method. Various versions of free Windows FTP software can be found at http:// www.shareware.com or http://www.tucows.com/, as can various versions of Fetch, the most popular of the Macintosh FTP programs. (If you're trying to get an FTP program for home, Fetch offers a free version to students, although you may have to read through a lot of fine print to find the free version. Windows users have many free choices, including Filezilla (winning the silly name award), Coffee Cup FreeFTP and EmFTP.) Even easier is to use a Web-based FTP program, such as UnlimitedFTP, http:// myftp.utechsoft.com/myftp/. This particular program lets you save your site settings, making it easy to transfer files via any Web browser. Net2FTP, http://www.net2ftp.com, will not save your site settings like UnlimitedFTP, but it allows you to edit html and css files directly on the Web server without having to risk downloading them onto a campus computer . If you do this, save a backup copy on the server so you can fall back in case you royally mess something up. When you first open an FTP program, you may need to create a new profile or session. A profile is simply a collection of settings giving the software information such as the location of the server and session name. Once you have typed in your information and clicked okay, the software connects to the server. The information for your Web space on that server will be displayed. Make certain to place your files in the right directory. On freeshell.org, all our files need to go somewhere within the directory named "html". Most FTP sites use Passive FTP, so if the instructions you got from the Web host don't say otherwise, try toggling on "passive" first and see if that works. If it doesn't, then toggle it off and try again. In most FTP programs , you will highlight the document that you wish to transfer and either double-click on it or drag it to the server side of screen. Often, arrows in the middle of the screen can also be used to transfer files from one location to another. Always transfer text documents (*.htm, *.html, *.txt, *.css--basically, anything you can open in a plain-text editor like Notepad) as ASCII files (text-only), and transfer all other files (images, sounds, Word documents, PDFs, video clips, etc.) as binary files. Most FTP programs these days have an "automatic" setting that takes care of the transfer types without any intervention by the user. Once a file has been transferred, you should be able to see that file in a Web browser by typing in the URL. (Your Web hosting provider should give you the URL that leads to where you keep your files.) In some cases, your account name may be incorporated into the URL by means of a tilde ~ or a backslash /. More detailed information is available here: Web-based FTP with net2ftp: An illustrated, step-by-step demonstration of how to use the net2ftp Website-based FTP program to transfer files to an account on Freehostia Macintosh: FTP with Fetch Filezilla for Windows, Linux, Mac OS 10.5 and above : An illustrated, step-by-step demonstration of how to use the free , open-source Filezilla FTP program to transfer files to an account on Freehostia How to use Filezilla* (Flash movie, broadband recommended) Sometimes, you might encounter a computer that has no GUI (graphic user interface) FTP software installed. Other times you might be in a hurry and not want to wait for the software to load. In cases like these, many people--especially power users--might choose to use command-prompt FTP. Like most command-prompt work, it's not for everyone, but it can be a powerful and fast tool for those who want to use it . Previous | Next Basic FTP command-line instructions This is optional, for those of you who might not always be at a computer where you can install an ftp client, or you folks who will be working with terminal servers and the like . It's good to know, since it will let you ftp from pretty much any computer that's got an Internet connection. 1. On a Windows computer, click the Start button and choose Run. In the dialog box, type FTP (enter). With Mac OS X, choose "Terminal" and type FTP (enter). With Unix or Linux, just type FTP (enter) at the command line prompt. 2. For this example, we'll assume the files you want to transfer are on a floppy disk. At the command line prompt, which should look like this: FTP > type the following: FTP > lcd a:\ (that's LCD, not one c d--it means change local directory, e.g. the one on your computer.) Obviously, if the files you need are in a subdirectory, on your hard drive, etc., you'd need to lcd to where your files are. And remember, most versions of Windows do strange things to directory names that are more than 8 letters long and to file names that exceed the old DOS 8.3 naming convention (eight or less letters, a dot, and three or less letters). Through this example I repeat the command line prompt. You only need to type the part in bold. After typing each command, you will need to press (enter) to send the command to the remote computer.) 3. Use the command line prompt to connect to the remote computer: FTP > open freeshell.org 4. When prompted, type your login ID and password, pressing (enter) after each. You won't see your password as you type it . 5. If necessary, use the command line prompt to change to the desired directory on the server: FTP > cd html (Only if the server has a html directory where you're supposed to put your files! Freeshell.org does, but you're in there immediately upon connecting by ftp, so you can skip this step. Note that it's lcd to change directories on your computer, and cd to change directories on the computer you've connected to. If your files on the remote computer are in a subdirectory of html, you'd need to cd again into that subdirectory.) 6. Want to make a new directory called "final"? FTP > mkdir final Want to know what directory (on the server) you're in? FTP > pwd Want to see what files are in that directory? FTP > ls (That's LS, as in list, not one-s.) Want to get rid of a file called "file.html"? FTP > del file.html 7. To upload or download HTML or text (txt) files, type ascii at the command line FTP > ascii For any other kind of files (images, sounds, Word documents, etc.), type bin at the command line FTP > bin 8. To move a file from your computer to the server, type "put" and the file name . To get a file from the server and transfer it to your computer, type "get" and the file name. When dealing with a bunch of files, you can use "mput" and "mget", and even use an asterisk as a wildcard. Be sure you've got typed bin or ascii depending on what you're doing! FTP > ascii FTP FTP FTP FTP FTP FTP FTP FTP FTP > > > > > > > > > put index.html get notes.html mput thing1.html thing2.html mput *.txt bin put photo.jpg get portrait.jpg mput sketch.gif draft.jpg button.png mget *.gif 9. All done? Type "bye" FTP > bye Today, FTP is often done by using software that automates the process and reduces the once complex UNIX commands to a simple point and click with your mouse. Previous | Next Good file management Following some basic tips of good file management can save you a lot of pain and gnashing of teeth. Remember, the easiest way to avoid mistakes is not to make them. Do not include spaces in file names. As often as not, this will break a Website. Use lowercase. On the Web most people write URLs by default in lowercase. Changing the case of your file names may confuse someone trying to find your Web site or type in your URL. Remember, the Web is case-sensitive. The file names mypage.html and Mypage.html are completely different as far as the computer is concerned. A link to mypage.html will fail if the actual file name is Mypage.html. Avoid symbols in your file names. Although - and _ can be used, they tend to be hard to read when underlined and often lead to mistakes . The names of files indicated in your links should be the same as the names of your files. (Duh.) Again, if you have <a href ="MyFavoriteFile.htm">Click here</a> and the file name is "myfavoritefile.html", don't expect your link to work. All parts of a Web site, including pictures and other files, must FTP'd for the complete site to show up on a Web browser. Use descriptive names. Calling every file test.html will only confuse you in the long run. If you name a file "index.html" on most servers (" default.htm" on older Microsoft servers), this file will be the one that shows up when a user doesn't include a file name in the URL. (For example, when you go to http://www.scn.org/, the page you're actually seeing is http://www.scn.org/index.html.) Depending on server security settings, if there is no file named index.html, the user either sees (1) a list of all files in the directory, or (2) a security error message telling them they're not allowed to see a list of all files in the directory. Previous Unfortunate domain name choices Think, then purchase. (These have been posted all over the Internet; they're not original to me.) If you're looking for IP computer software, there's always www.ipanywhere.com. Who Represents is where you can find the name of the agent that represents any celebrity. Their web site is www.whorepresents.com. Experts Exchange is a knowledge base where programmers can exchange advice and views at www.expertsexchange.com. Looking for a pen? Look no further than Pen Island at www.penisland.net. Need a therapist? Try Therapist Finder at www.therapistfinder.com. There's the Italian Power Generator company, www.powergenitalia.com. And don't forget the Mole Station Native Nursery in New South Wales, www.molestationnursery.com. (This one has been changed...and thankfully so.) More? Site: GotAHoe.com Is really: GoTahoe.com (Lake Tahoe Visitors Bureau) Site: DollarSexChange.com Is really: DollarsExchange.com (currency trading site) KatieSwigs.com (Blog of a hard-drinkin' gal?) KatiesWigs.com (Hand-made wigs for theatrical productions) TeacherStalk.com (Your boy's teacher keeps following him?) TeachersTalk.com (Get your teaching credential from Walden University) Site: AmericansCrapMetal.com (Support for those with iron-rich blood?) Is really: AmericanScrapMetal.com (Texas metal recycler) BiGalsOnline.ca (Support for Canuck women who swing both ways?) BigAlsOnline.ca (Big Al's aquarium supply in Canada) Site: SydneyTheRapist.com (Guy who brags about his leisure activities?) Is really: SydneyTherapist.com (Woman sex therapist in Sydney, Australia) Site: SpeedoFart.com (Explaining bubbles coming from competitive swimmers?) Is really: SpeedOfArt.com ("Arty" British ad agency) An illustrated guide to using Filezilla for FTP'ing files to a site on Freehostia These screen captures are from a free site hosted at Freehostia.com. For an FTP client , I am using the free open-source Filezilla client, available from http://filezilla-project.org/ for Windows, Linux, and newer Macs (OS 10.5 and above). The advantage of FTP client software is it can remember your login, password, site address, directory name, etc. The disadvantage is that we don't have it here on campus, and even when we did, you wouldn't want it to remember your login information since these are shared computers. Filezilla undergoes constant updates, so the screen shots here probably will not be an exact match to what you see. Consult their help files if you have trouble figuring out where something is that's not exactly as shown here--the user interface changes but the concepts remain the same, so it should not be difficult to look up. There are two parts to these instructions: initial setup, and then how to use it . One-time setup instructions for home use 1. Filezilla and, from the File menu, choose "Site manager". 2. Set up a new site , named for the URL (domain) you received from your Web provider (Freehostia, for most of you). 3. Using information from the setup email sent when you registered with Freehostia, fill in the fields in the file transfer protocol (FTP) client. When you have it all filled in, click "Advanced". 4. In the "Advanced" section, fill in the default remote directory (a / slash followed by your site domain, if you're using Freehostia). Then, use the browse button (to the right of the local directory box), browse to and click on the directory that contains all your files. Select "Passive FTP" for most Website hosts. (If you can't get it to work, then try deselecting it.) Select "OK", then click "Save and exit" to ensure that your settings are saved. 5. From the "File" menu, choose "Site manager". (Yes, again.) 6. Pick your site name from the available sites, then click "Connect". 7. Use drag and drop to upload your chosen files onto the Web server. The screen on the left shows directories and files on your computer. The screen on the right shows what's on the Web server. An illustrated guide to FTP'ing files to a site on Freehostia These screen captures are from a free site hosted at Freehostia.com. For an FTP client , I am using the free Web-based FTP service at http://www.net2ftp.com/, since I know it will work, and look the same, on pretty much any computer. 1. First, using information from the setup email sent when you registered with Freehostia, fill in the fields in the file transfer protocol (FTP) client. 2. Connect to Freehostia and choose what you want to do (usually upload a file or create a directory 3. Upload your chosen files onto the Web server. 4. Log off when you're done moving files around. An illustrated guide to FTP'ing files to a site on Freehostia Already got this set up? Skip down to "Regular file transfer tasks" if you just need a reminder of what to do to move files around. These screen captures are from a free site hosted at Freehostia.com. For an FTP client , I am using the free UnlimitedFTP Web-based FTP service at http://myftp.utechsoft.com/ myftp/, since I know it will work, and look the same, on pretty much any computer, with the added benefit that it will save my site settings. Remember that the UnlimitedFTP Website is nothing but a file transfer tool. It does not store your files, it just helps you copy them between a Web server on the Internet and your computer. One-time setup Before doing anything else, you will need to register with the site. You may pick any login ID and password you like , just make sure you remember them. After you have submitted the registration, wait till they email you a confirmation link to click. Once you have that, you can log onto the UnlimitedFTP tool. 1. First is a one-time task, setting up the site information so you can easily connect with your Website. Begin by clicking "Create a new FTP connection " on http:// myftp.utechsoft.com/myftp/ after you have logged in . Using information from the setup email sent when you registered with Freehostia, fill in the fields in the file transfer protocol (FTP) client. Click "Save site", and the server connection information should now be saved. Regular file transfer tasks These are the steps you'd take whenever you need to copy a file to or from your Web server. 1. Log onto to the file transfer tool at http://myftp.utechsoft.com/myftp/, and click the site you set up earlier. If you get a security prompt for whether or not to trust this site, click "Trust". (This probably won't happen every time you connect; it depends on computer setup.) Click "Trust" if you're asked. 2. If you are a Freehostia.com user, you must double-click the directory to open it. 3. At this point it should look and work pretty much like any other FTP client covered in our notes. The left side of the screen shows files on your local computer (just like Windows Explorer and similar programs do); the right side is showing files on the Web server. Drag files from one side to the other to copy them between the two places. Use the "MakeDir" buttons to create a new directory, the "Rename" buttons to rename a highlighted (selected) directory or file, and the "Delete" buttons to delete whatever's highlighted. To know more about how this tool works and what it can do, click the "Help" button. 4. Click the "Logout" tab at the top when you're finished. CTN 160 Click a section heading to see its content. View all sections | Collapse all sections Searching the Internet Why do we care? This is a class about Web publishing. Why waste time on the subject of searching? And why talk about any search tool other than Google, since it's so good? These are good questions. Here are some answers: 1. If you publish a Website for public consumption and nobody can find it , it's not much good, is it? Knowing how search tools work can help you create your site so it'll show up where you want it to. 2. Knowing about the world of search beyond Google can help you better set your site up in case you're doing a specialty site and your audience might be using means other than Google to find you. 3. Google is outstanding. No question about it . But, because Google's so good, it makes everybody look like a search genius. This raises the bar a lot for you, both as a student and in your work life. Assume the person in the next cubicle over, and your boss, and your evil competition, have also heard of Google. If you want to deliver things that others can't routinely lay their hands on, you'd better learn to Google, certainly, but you'd better learn more than Google as well. So, moving along... Four Ways to Find Things on the Internet There are basically four ways to find something online. 1. 2. 3. 4. You Use Use Use know the source of the information, e.g. you know the URL. a subject directory a ready reference resource a search engine Not Everything on the Web is True! Do you believe that everything you read is true? If someone walks up What about everything on to you and tells you an the Internet? In a world unbelievable story, where anyone can publish on what do you do to the Web, not all information determine if it is true is created equal. Much of the or not? information you find on the Internet is reliable, accurate and true... but much of it is The Internet is a also biased, misleading and whole new ball game downright false. when it comes to information. As such In the real world, parents, we need to develop friends, education and new toolboxes full of experiences help us develop tips and techniques to the ability to determine fact determine if the from fiction truth from lie. In information we are situations where the line seeing on the Internet between truth and lies are is true or false, blurred, we have developed reliable or an internal toolbox of tips unbelievable. and techniques to make educated guess about what to believe. When it comes to information on the Web ask yourself the following questions... Who is the Author? Can you find the name of the author or creator ? Are there any credentials? Degree, title, etc. Is there contact information somewhere on the page? Is there a link to a homepage? Is it for an individual or for an organization? What can you tell from the URL? Who owns that URL… Because all domain names are registered, information about who owns a domain name or URL can be checked with a WHOIS search. WHOIS searches can be performed at several domain registrars, including AllWhois, http:// www.allwhois.com and Can you tell anything about the source of the information from the domain name or URL? Can you find out more about the URL? What is the purpose of the Web site? Does the site have one... if so, what? Is the site trying to inform, persuade, or sell? Is it geared to a particular audience? Who benefits from my believing this? Is the site objective? Is the site fact or opinion? Is the author's point-ofview objective and impartial? Is there affiliation with an organization? If so is there some bias? Is this information accurate? Can this information be verified? You may need to do a little searching to verify information. Is there quality control? Are there spelling mistakes, grammatical errors, or typos? Is the information reliable and credible? Would you bet your life on this information? What institution (company, government, university, etc.) supports this information? register4less, http:// www.register4less.com Other Popular Evaluation Criteria 5-Ws for Evaluating Web Sites Who is responsible for the site? What type of site is it? When was it last updated? Where can you find more information? Why was the site created? Can you verify this site with a non-Web equivalent? Who does the site link to? And who links to the site? Is the information current? Is the information current in nature? Can you find evidence of recent updates? Next section Subject directories A subject directory organizes Internet resources by subject. (Yes, you may chalk that up under "Well, duh".) These are great places to start your research. Many directories can be searched by keyword. Most offer special features like information guides, free email, or current news. Arguably the most famous subject directory is Yahoo!, launched in 1994 by two candidates in Electrical Engineering at Stanford University. They started their guide as a way to keep track of their personal interests on the Internet. Of course, now, Yahoo! has purchased so many services and expanded so much that its former core function is often eclipsed by its other services. In fact, their subject directory is fairly well buried now, at yahoo.com you have to look carefully to even find it . The Open Directory Project is noteworthy because instead of being a corporation, it's staffed by thousands of volunteers in the "open source" model. If you don't think that could be worth anything, take a look in the "help" section of some major search tools and notice that most of them use the Open Directory Project as one of their primary information sources. Yahoo http://www.yahoo.com Open Directory Project http://www.dmoz.org Previous | Next Ready reference resources The term ready reference is how librarians often describe resources that can be used to quickly answer questions: an encyclopedia, a dictionary or favorite database, etc. On the Internet, the ready reference Web sites allow us to quickly answer questions without performing detailed searches, and without having to kiss all the frogs just to find the prince. These include: Specialized databases Virtual libraries Pathfinders Online reference tools Portals Specialized databases A specialized database is a searchable collection of information or hyperlinked sites. Google Groups http://groups.google.com Search engine for Newsgroups and other on-line discussions (formerly DejaNews) Hoover's Online http://www.hoovers.com Search for information about corporations. Although this is a subscription service, it does provide lots of useful information for free. AJR Newslink http://www.newslink.org The American Journalism Review Web site provides links to thousands of broadcasters, magazines and newspapers worldwide. Internet Movie Database us.imdb.com The ultimate movie reference source. Fed Stats http://www.fedstats.gov Collection of statistics from government agencies Virtual libraries Based on the traditional library, these sites identify, organize and evaluate information. Sometimes virtual libraries are searchable or organized by a particular scheme (like Dewey or Library of Congress). Librarians have been organizing information for the masses for centuries. A virtual library delivers the library scientist's skilled touch at setting things up so it's easier to get to what you're wanting to find, and easier not to find what you don't want mixed in among the things you did want. Internet Public Library http://www.ipl.org A library for the Internet community developed by the University of Michigan Librarian's Index to the Internet http://lii.org/ This subject listing of Internet resources is developed and maintained by librarians at the University of California, Berkeley INFOMINE http://infomine.ucr.edu/ Scholarly Internet Resources Collection from the University of California. Geared more to academia Pathfinders or guides A pathfinder, guide, or subject-specific resource is a Web site that identifies, organizes, evaluates and annotates Internet resources on a particular subject. About.com, http://www.about.com, is among the better-known sites maintained by subject matter expert "guides" who have advanced knowledge of the topic. Items are often annotated with a synopsis or review, so the user has a good idea of what lies beyond the link before clicking on it. Because of this, Pathfinders can save a lot of visits to sites that turn out not to be worth your while . On-line reference tools On-line reference tools are Web sites that function like print reference sources or provide quick answers to questions. These are similar to those magic books behind the reference desk at the library--when you ask the reference librarian the most unanswerable question imaginable, they pull out this book, turn to some seemingly random page, and provide the answer, as if it was the easiest thing on earth. Those same reference librarians who built those collections of magic books behind the desk have also built the online equivalents, and even though you're not allowed behind the reference desk to hold the magic books, there's no desk between you and these sites. King County Library System Answers http://www.kcls.org/answers/ A collection of online ready references maintained by the library. Yahoo Reference Page dir.yahoo.com/Reference/ Listing of reference sources developed by Yahoo. InfoPlease Almanac http://www.infoplease.com The on-line version of the Info Please Almanac, includes a dictionary and encyclopedia. Wikipedia http://en.wikipedia.org/ Wikipedia is a free online encyclopedia edited by volunteers, with articles subject to change by nearly anyone. Wikipedia 's volunteers enforce a policy of "neutral point of view" whereby views presented about notable persons or literature are summarized without an attempt to determine an objective truth. Because of its open nature, vandalism and inaccuracy are problems in Wikipedia. The status of Wikipedia as a reference work has been controversial, and it is both praised for its free distribution, free editing and wide range of topics and criticized for alleged systemic biases, preference of consensus to credentials, deficiencies in some topics, and lack of accountability and authority when compared with traditional encyclopedias. Portals Portals are Web sites that aim to be the user's entry point to the Internet. Traditionally these sites contain value-added services, such as free email, subject directories, special guides or personalized information. Many search engines have tried to turn themselves into portals. Most have failed. Portals are often recognizable by the fact that they've attempted to cram every imaginable link anyone could ever want onto one page. Yahoo* http://www.yahoo.com MSN http://www.msn.com Excite* http://www.excite.com Lycos* http://www.lycos.com AOL http://www.aol.com CBS Sports http://www.cbssports.com IVillage http://www.ivillage.com Inc http://www.inc.com * Portals marked with asterisks are also search engines. Previous | Next What is a search engine, really, and how does it work? A search engine is basically a database of links to Web sites and Internet resources. The search engine database is put together using robot programs, often called spiders, crawlers, or bots. These spiders, crawlers and bots are programmed to find Web pages, follow all the links they contain and vacuum any new information they find into the master database. When you use a search engine, you are not really searching the entire Internet, only a database of pages and resources gathered from the Internet. The results you get might be up-todate, or they might not; it depends on how long since the robots visited the site and whether the information they collected has changed since it was added to the search engine's database. Once the robot programs collect the information, the search engine's indexing program takes over. An indexing program goes through the information collected by the robot programs and establishes access points--ways to connect your questions to the their information in the database. When you submit a query or question to the search engine, a retrieval engine: 1. searches the database compiled by the robot programs and indexing programs, 2. identifies items that match your query and organizes, and 3. displays them in a particular order, based on relevancy (how closely they match your query). All of this information is presented to you, the user, by means of the search engine's HTML interface, the actual Web page you see when you go looking for information. Previous | Next Using a search engine (better than most other people) Although most search engines basically function the same way, there are many differences among them. Some search engines contain a database of several billion Web pages; others have less than 3 million. Some search engines allow only full text searching (searching through the entire text of a document), while others also offer field searching (searching only a specific field within a document, such as the title or author field). Some search engines offer only basic search commands, yet still others allow you to develop complex searches. Regardless of the search engine, the following four -part process will help you to develop effective queries and retrieve better results. Search engine results (or why the Internet really is not just full of porn) Sometimes the query results from a search engine include sites that seem to have nothing at all to do with what you were researching. In some cases, search results may include unrelated links to sites that contain questionable or pornographic material. Uninformed searchers might conclude that the Internet consists entirely of pornography and bad language. That's a bunch of #$%@. Despite what certain of our members of Congress might think, this conclusion is not correct. Unrelated hits sometimes come up on searches because the people who build these questionable sites know enough about how search engines work to make that knowledge work for them. Unscrupulous Web developers can misuse and abuse search engines for the sole purpose of increasing their sites' rankings in the search engine results. The higher the rankings , the more likely it is that someone would click on that link and visit the site. Many of the names for these types of abuse are colorful and amusing--that is until you are made an unwilling victim. Old-school tricks included: Font matching Adding keywords or the same word over and over again, but matching the font color to the background color so no one can tell. Meta jacking Stealing someone else's Meta tags (tags use to provide descriptions of a page) in order to inflate your own ranking. (We'll talk more on meta tag abuses on the next page.) Key Word Gateways Directing people to a page then automatically taking them somewhere else. Mouse Trapping Using scripting language to prevent someone from leaving your site The good news is that search engine programmers are completely aware of these tricks and punish sites that may seek to manipulate rankings . Sites that try to trick search engines often wind up at the very bottom of the relevancy chart (site 2,143,975 of 2,143,975) or get removed from the search index entirely. Is there a trick to using search engines? Most definitely! Read the search engine's help files. Although most search engines basically function the same way, there are many differences among them. Some search engines contain a database of 8 billion Web pages; others have less than 3 million. As mentioned above, some search engines allow only full text searching (searching through the entire text of a document) and while others also offer field searching (searching only a specific field within a document, such as the title or author field). Some search engines offer only basic search commands, yet still others allow you to develop complex searches. The Internet is full of information. A lot of it is junk. You'll have a much easier time getting to what you need on the Internet if you develop a search strategy. Regardless of the search engine, the following four part process will help you to develop effective queries and retrieve better results. Step one: Selecting Keywords It doesn't make searching any easier to figure out when the same words mean different things, for example when people use the generic "search engine" when they really mean "subject directory". As if that's not bad enough, there are at least three Web-search-related uses of the term "keyword": 1. America OnLine has its own "keywords", which are text shortcuts their users can use to quickly get to specific AOL content. These keywords are available for purchase from AOL. 2. The HTML meta tag supports keywords. This is a way to put additional descriptive information in the head of an HTML document (not in the body), where it is visible to search indexes but not to readers . This was originally created to help search tools index a Website. The use of meta tags by search engines has dropped remarkably as search tool technology has improved and as search tool programmers caught more and more people trying to scam their search engine by doing things like: putting their competitors' product names into meta tags on their own Websites, so for example, a user searching for Southwest Airlines would find themselves on the Northwest Airlines Website instead. Not a real example, as far as I know: <head> <title>Welcome to Northwest Airlines</title> <meta name="keywords" content="Southwest American PanAm" / > </head> repeating an important keyword a few hundred times in the meta tag in order to fool the search engine into assigning the page a higher relevancy Not a real example, as far as I know: <head> <title>University of Washington</title> <meta name="keywords" content="football football football football football football football football football classes football football" / > </head> inserting keywords that had nothing to do with the Website itself but were known to be very popular search terms, in order to drive up the "hit counts" on a site . Not a real example, as far as I know: <head> <title>Bank of California</title> <meta name="keywords" content="beer diet cats dogs fun Mel Gibson Julia Roberts" / > </head> Anyone still using meta keywords as a major strategy for search engines is probably in need of a refresher course on how modern search tools work. Wise use of meta tags won't harm your rankings with the search tools, but abuse of meta keywords will likely trigger an alarm in the search indexing software, which will subsequently drop your site to the bottom of the relevancy rankings even if it was otherwise a very relevant site . Search engine programmers don't like people messing with them... 3. Keywords, or search terms, is a descriptive label for the words a person uses to conduct a search: the terms you use to ask a question. Keywords are the most important part of a search, and the first thing to check if the search is not working. For example, if you're looking for information on Collie, a type of dog, which of the search terms below would you select? Dogs Lassie Hamsters Collies Too broad Too narrow Not relevant Good search term It is true that a collie is a type of dog, but using "dogs" as a search term means that we will get information on all kinds of dogs even if they are not collies. Yes, Lassie was a collie, but if we use this as a search term we will only get information on a specific collie. You might be wondering, "what do hamsters have to do with collies?" Believe it or not, many people use search terms that are not related to their questions. In this case, "collies" is the best choice for a search term. (By the way, don't blame me for this example. It's borrowed with permission from Pamela Wilkins, a former librarian and instructor at South Seattle Community College. I don't know if that means someone searched the SSCC library for hamsters when they wanted information about collies. Anything's possible.) It's often necessary to select more than one search term or keyword to perform an effective search. For example, someone looking for information on golf clubs for kids might need to come up with more than one keyword. The best way to do this is to dissect the question and make a mental list of possible keywords. golf clubs kids golf, sports, game, tournament, pro clubs, sports equipment, putters kids, children, boys, girls, beginner, amateur, golfer First, eliminate any keywords that are not relevant or that might confuse the results. Next, select the keywords that are not too broad or narrow. Finally, arrange the keywords in order of the most importance. The keywords selected for this example were golf, clubs and children. Step two: building a search query A search query is a fancy name for the request or question submitted to a search engine. Once keywords are chosen, it is time to tell the search engine exactly what type of information is being sought. A search engine is only as good as the query you submit . A crummy query will retrieve crummy results. The commands described below can make your queries more precise than keywords alone. Boolean One of the most effective ways to search any database is to use Boolean logic. Developed by the British mathematician, George Boole, Boolean logic refers to a logical relationship between search terms. Don't go all math-phobic on me, this isn't that bad. Boolean logic consists of three logical operators: And Or Not. Boolean can be used with many different search engines and is an excellent way to perform an effective search. dog AND cat dog OR cat dog NOT cat Information with both the words Dog and Cat Information with either the words Dog or Cat Information with only the word Dog, without the word Cat Fuzzy Boolean Many search engines also use an easier form of Boolean called Fuzzy Boolean. (No, that's not the name of a drink or a rock band--at least not as far as I know.) There are only two logical operators + - in Fuzzy Boolean, but in many cases it can be just as effective as Boolean. +Dog -Dog + - The + sign says that no matter what information is available, the information must have the word Dog. The - sign says that no matter what information is available, the information must not have the word Dog. Phrases Sometimes it is best to express the search query as a phrase . Enclosing the keywords in quotations defines a phrase. Whenever possible all phrases should be put in quotations. For example, the following keywords are best expressed as phrases. "Stephen King " "Date Rape" "Cab Driver" "Cab Driver" cab driver Searches for the cab driver as a phrase in the exact order specified. Will retrieve information with the words cab and driver in any order. Truncation or wildcards Sometimes words have more than one possible ending. Medical information might also be listed under medicinal, medicine, or medic. Rather than using four different search terms, we can use truncation or wildcards to represent the different endings. Truncation or wildcards are usually represented by the asterisk symbol * and usually can not represent punctuation or numbers. Medic* Will retrieve the same information as listing the words Medical, Medicine, Medicinal, and Medic. Other Search Commands Many search engines have special commands that allow you to perform even more complex searches. If a search does not yield the desired results, check the search engine's help pages to learn about its specific advanced commands. Yeah, right. Nobody reads instructions. Do it. A couple of minutes reading on Alta Vista's help pages can turn you into a much more powerful online researcher. Step three: evaluating search results Once the search query has been constructed and submitted, it is time to evaluate the results. Most search engines generally list hits (items that match the search query) based on relevancy. Relevancy is the percentage of how well a Web page matches the search query. Some search engines will only give the top fifty hits returned by a query; others will give all the hits that matched. Sometimes this number can be very large, even reaching into the millions. There are three main things to look for when evaluating search results. 1. If you don't find what you are looking for in the first two pages of results, try using a different query. Most likely you need to choose different keywords. 2. Look through your results for other keywords that might help further narrow your search. For example, if your search on "sewing careers " brings up results with the word seamstress, then you might include "seamstress" as a keyword. 3. Look for keywords you may want to exclude. If you are looking for information on tigers, but your results include hits about Tiger Woods you may want to exclude the keywords "woods" and "golf". (Or maybe just exclude the word "golf"; if the tigers you're search for are forest-dwelling animals you might not want to exclude "woods".) As the bottom dropped out of the dot-com economy, search engines have had to turn to new ways to make money. One of these is sponsored links. In this case, an advertiser pays the search engine money in return for appearing higher up on the search results. The various search engines show a varying amount of integrity in clearly differentiating the results that are at the top based on relevancy vs. those at the top based on how much money someone paid for the spot. Try entering our president's name as a query on several search engines. You'll typically find things for sale prominently displayed--those are paid placements. It's not as bad now as it was in a few years ago, where most search tools indicated you could buy George W. Bush on eBay. (Cynical as I might be about government, that seemed a little too blatant to be true.) Step four: rebuilding a query If, after performing all three steps, you have not found what you are looking for, go back to step one and rebuild the query. The first few searches may seem awkward and slow . Don't be discouraged. With a little practice, searches become faster and more precise. Remember, checking the "help" link on a search engine can give you lots of information on restructuring a query so it will get you the best possible results. Previous | Next Search engines and search engine resources AltaVista (strong advanced query options) http://www.altavista.com Ask.com (uses natural language queries) http://www.ask.com All The Web (vies with Google for the largest number of sites indexed) http://www.alltheweb.com Bing.com (Microsoft's newest search tool, marketed as a "decision engine," includes a number of extra features. "Because It's Not Google" is not really the acronym. http://www.bing.com Google http://www.google.com MetaSearch Engines Not to be confused with META tags, a MetaSearch engine is a search engine that searches several other search engines at once, and returns the results to you. Some, such as Dogpile, separate the results by search engine; others weed out duplications and return all results by relevancy. Clusty (organizes results into clusters, formerly Vivisimo) http://clusty.com/ Dogpile http://www.dogpile.com SurfWax http://www.surfwax.com MetaCrawler http://www.metacrawler.com Just plain cool Some people prefer a more visual experience. The Brain (an information organizer that branched into searching, now a download (used to be a Website), requires Java) http:// www.webbrain.com/ KartOO (visual meta search engine, requires Flash player) http://kartoo.com/ TouchGraph Google Browser (requires Java) http:// www.touchgraph.com/ TGGoogleBrowser.html Search engine resources NoodleQuest Assistance in choosing the right search tool. Developed by research librarians. http://www.noodletools.com/ noodlequest/ Research Buzz Tara Calshain's excellent blog about search engines. http://www.researchbuzz.com Search Engine Watch Danny Sullivan's comprehensive site about the search engine world. http://www.searchenginewatch.com Lodestone Lara Fabans' blog often offers white papers on search engine optimization (SEO), SEO copywriting, and more. http://lodestone-cs.com/ Web Position Search engine optimization software site, but also has good information about building sites that work well across the major search engines. http://www.webposition.com/ Link Popularity Checker Link popularity (how many sites link to http://www.linkpopularitycheck.com yours) is often used by search engines to rank search results. Search.com voyeurism See a random sample of what other people are searching for right now. http://www.search.com/top?ref=sr Previous Illustrated, step-by-step demonstrations of how to use an FTP program to transfer files to a server Web-based FTP with UnlimitedFTP (http://myftp.utechsoft.com/) UnlimitedFTP requires Java. If you're at a computer that won't let you use it, use Web-based FTP with net2ftp instead Filezilla for Windows, Linux, Mac OS 10.5 and above How to use Filezilla* (Flash movie, broadband recommended) How to install Filezilla Portable* (Flash movie, broadband recommended) Many publicly available computers, including the ones on the SSCC campus, do not have a dedicated FTP program installed. A clever workaround is to install Filezilla on a thumb drive and use that to transfer files. * Special thanks to Clive Woodhouse for creating and sharing the Flash-based Filezilla tutorials. An illustrated guide to FTP'ing files to a site on Freeshell.org Already got this set up? Skip down to "Regular file transfer tasks" if you just need a reminder of what to do to move files around. These screen captures are from a free site hosted at Freeshell.org. For an FTP client , I am using the free UnlimitedFTP Web-based FTP service at http://myftp.utechsoft.com/ myftp/, since I know it will work, and look the same, on pretty much any computer, with the added benefit that it will save my site settings. Remember that the UnlimitedFTP Website is nothing but a file transfer tool. It does not store your files, it just helps you copy them between a Web server on the Internet and your computer. One-time setup Before doing anything else, you will need to register with the site. You may pick any login ID and password you like , just make sure you remember them. After you have submitted the registration, wait till they email you a confirmation link to click. Once you have that, you can log onto the UnlimitedFTP tool. 1. First is a one-time task, setting up the site information so you can easily connect with your Website. Begin by clicking "Create a new FTP connection " on http:// myftp.utechsoft.com/myftp/ after you have logged in . Fill in the fields in the file transfer protocol (FTP) client. Click "Save site", and the server connection information should now be saved. Regular file transfer tasks These are the steps you'd take whenever you need to copy a file to or from your Web server. 1. Log onto to the file transfer tool at http://myftp.utechsoft.com/myftp/, and click the site you set up earlier. If you get a security prompt for whether or not to trust this site, click "Trust". (This probably won't happen every time you connect; it depends on computer setup.) 2. If you are a Freeshell.org user, connecting by FTP will automatically put you in the html directory on the server. Double-click a directory name to get to its contents. 3. At this point it should look and work pretty much like any other FTP client covered in our notes. The left side of the screen shows files on your local computer (just like Windows Explorer and similar programs do); the right side is showing files on the Web server. Drag files from one side to the other to copy them between the two places. Use the "MakeDir" buttons to create a new directory, the "Rename" buttons to rename a highlighted (selected) directory or file, and the "Delete" buttons to delete whatever's highlighted. To know more about how this tool works and what it can do, click the "Help" button. 4. Click the "Logout" tab at the top when you're finished. An illustrated guide to FTP'ing files to a site on Freeshell.org These screen captures are from a free site hosted at Freehostia.com. For an FTP client , I am using the free Web-based FTP service at http://www.net2ftp.com/, since I know it will work, and look the same, on pretty much any computer. 1. First, fill in the fields in the file transfer protocol (FTP) client. 2. Connect to Freehostia and choose what you want to do (usually upload a file or create a directory 3. Upload your chosen files onto the Web server. 4. Log off when you're done moving files around. An illustrated guide to using Filezilla for FTP'ing files to a site on Freeshell.org These screen captures are from a free site hosted at Freeshell.com. For an FTP client , I am using the free open-source Filezilla client, available from http://filezilla-project.org/ for Windows, Linux, and newer Macs (OS 10.5 and above). The advantage of FTP client software is it can remember your login, password, site address, directory name, etc. The disadvantage is that we don't have it here on campus, and even when we did, you wouldn't want it to remember your login information since these are shared computers. Filezilla undergoes constant updates, so the screen shots here probably will not be an exact match to what you see. Consult their help files if you have trouble figuring out where something is that's not exactly as shown here--the user interface changes but the concepts remain the same, so it should not be difficult to look up. There are two parts to these instructions: initial setup, and then how to use it . One-time setup instructions for home use 1. Filezilla and, from the File menu, choose "Site manager". 2. Set up a new site , named for the URL (domain) you received from your Web provider (freeshell.org, for most of you). 3. Using information from the setup email sent when you registered with Freehostia, fill in the fields in the file transfer protocol (FTP) client. When you have it all filled in, click "Advanced". 4. In the "Advanced" section, use the browse button (to the right of the local directory box), browse to and click on the directory on your computer that contains all your files. Select "Passive FTP" for most Website hosts. (If you can't get it to work, then try deselecting it.) Select "OK", then click "Save and exit" to ensure that your settings are saved. 5. From the "File" menu, choose "Site manager". (Yes, again.) 6. Pick your site name from the available sites, then click "Connect". 7. Use drag and drop to upload your chosen files onto the Web server. The screen on the left shows directories and files on your computer. The screen on the right shows what's on the Web server. Basic xHTML Click a section heading to see its content. View all sections | Collapse all sections HTML / xHTML The core of the Web is a structured coding language. That langauge is the heart of what you will learn in this class. All html tags are inclosed in greater-than and less-than signs (< and >). Every xHTML document has a head and body. The body houses all the information that is displayed in the browser window and the head of the document houses information for the browser software about the document itself (title and meta tags, for example). HTML, or Hypertext Markup Language, is coding language used to create Web documents. A Web browser reads the HTML and translates it into the Web pages seen on a computer screen. Understanding HTML is the key to learning to create Web pages. XHTML is an acronym for "eXtensible HyperText Markup Language", a reformulation of HTML 4.0 as an XML 1.0 application . XHTML provides the framework for future extensions of HTML and will likely to replace HTML in the future. Although we talk about HTML in this class, what we learn is mostly XHTML--it's just that "HTML" is easier to say (and spell). <!DOCTYPE html PUBLIC "-// W3C//DTD XHTML 1.0 Transitional//EN" "http:// www.w3.org/TR/xhtml1/DTD/ xhtml1-transitional.dtd"> <html xmlns="http:// www.w3.org/1999/xhtml"> <head> <title>Title of Document</ title> <meta http-equiv="contenttype" content="text/html; charset=iso-8859-1" /> </head> <body bgcolor="#FFFFFF"> <h1>Hello</h1> <hr / > <p><span style="fontface:Trebuchet MS, Arial, Helvetica, sans-serif; fontsize:12pt">This is a basic Web page. </span></p> </body> </html> Critical things to remember about xhtml: All the code inside < > should be lowercase. All xhtml files are purely text files (ie text only) and should be saved as text only with a .htm or .html extension , no spaces and no capital letters or funky symbols such as @, $, &, etc.. Every tag that you open has to be closed. Be hyper-aware of what you are saving, where you are saving it, and when. When you are writing code for the Web, you will usually have three applications open at one time: an an application to edit the xhtml, and a couple of browsers. Why the Web is not print A Website or page is never really complete, it is a living, evolving document and should be treated as such A Website will never look the same to everyone, due to Web design variables. Be aware that these variables (covered throughout the course) make it almost impossible to please everyone. As a good Web coder, however, your job is to make the work you are coding look the best to the majority of your viewing audience. Viewing Web files You can view Web files locally by opening them in a Web browser. You can only view Web files over the Internet if you upload them to a Web server somewhere. The HTML code for any Web page is easy to see. Select the "view" command on the browser's menu bar and choose "page source". Viewing the source in Internet Explorer Viewing the source in Mozilla/ Firefox Or, right-click the mouse over any text on the Web page, and choose "view source" from the pop-up menu. (Macintosh users would, of course, control-click to get the pop-up menu.) Next section Writing xHTML The easiest way to write xHTML is to use a basic text editor. Text editors are simple programs that allow one to write and edit--guess what--text. Basic text editors that work well for writing xHTML include Notepad, Notepad++, or Notepad2 (Windows), Pico (Unix and MacOS X; a Windows version exists), TextWrangler (Mac), Gedit and Gnotepad Plus (Linux). One step beyond, specialized HTML editors, text editors with toolbars and features specific for writing xHTML code, include HTML-Kit (Windows). TextWrangler (Mac, noted above) is arguably in this category as well; it has a lot of Web-specific items in its menus. Many basic text editors and HTML editors can be found for free or cheap at Shareware.com, http://www.shareware.com or Tucows, http:// www.tucows.com/. Microsoft Word, Word Perfect, Open Office, and other word processors are an awful choice for creating xHTML documents. Word processing programs do horrible things to xHTML code. In fact, in Microsoft Word, the industry-standard word processor, the "save as HTML" feature is so infamous that Macromedia Dreamweaver, arguably the industry -standard Website authoring tool, has a toplevel menu pick named "Clean up Word HTML". Linux programmers, never ones to mince words, created a utility called "De-moronizer", to do the same thing. There are many different software programs such as Macromedia Deamweaver that allow one to create Web pages without knowing xHTML. These software programs are called HTML editors or WYSIWYG (pronounced wis cee wig), which stands for What You See Is What You Get. Among the free ones, it's hard to go wrong with the Mozilla Seamonkey suite (http://www.mozilla.org/). Mozilla creates Firefox, an open-source browser previously mentioned in this class. (The browser as a stand-alone product is called Firefox, whereas the Mozilla Seamonkey Suite contains the browser, an impressive email client called Thunderbird (for folks interested in switching from the more virus-prone Outlook or Outlook Express), and a quite passable WYSIWYG xHTML editor.) Veteran Web Designers often use a WYSIWYG to assist them in creating large or complex Web sites. When you're a veteran Web Designer creating a complex site , you may choose to do that, too. Not for this class, though--stick with basic xHTML and a text editor. (That's a requirement, not a suggestion .) If you don't have a basic knowledge of HTML, you can only do what the WYSIWYG lets you do. Worse, those tools are prone to making mistakes in the code, and when you need to fix something, the WYSIWYG might not be able to help. If you have a basic understanding of HTML, you should be able to figure out many problems you might encounter with your Web pages. Besides, most WYSIWYG editors are really WYSINRWYG (pronounced wis singer wig), which stands for What You See Is Not Really What You Get). There's no substitute for testing on lots of browsers on lots of different computers with different operating systems, screen resolutions, etc. Previous | Next The xHTML tag The xHTML tag is the essential element in xHTML. Every xHTML tag is made up of < (an opening angle-bracket), > (a closing angle-bracket), and a tag name . Many tags also contain an attribute and its value. (Don't trip over the "attributevalue" language just now, we'll cover it in a bit.) The HTML tags give the browser instructions for what a Web page is supposed to look like--the appearance and function of the content (text and graphics). Generally, the tag name is an abbreviation for the tag's function. For example, the tag to make a paragraph is: <p> text </p> Attributes are added within a tag to extend or modify the tag's function . For example, <span> is a tag that sets aside a piece of text so you can make changes to it. The attribute style can be added to change the size of the font: <span style ="font-size:12px">text</span> Most attributes are equal to a value, which is the part that follows the equal sign . In the example above, the tag is <span>, the attribute is style and the value is "font-size:12px". The value establishes to what degree the attribute is represented. The value should always be enclosed in quotation marks. Might as well get in the habit of doing it right now.) A single tag can have multiple attributes, but each attribute can only be repeated once: <a href="filename.html" id="link1">text</a>. <tagname attribute ="value"> Previous | Next Container tags vs. standalone tags Most HTML tags are container tags: they have a start tag and an end tag. The content (the text that is being affected by the xHTML code) goes in between the two tags. In almost all cases, the end tag will be the tag name preceded by a / forward-slash. Think of the / as an off-switch for your tag. Attributes and values are not included in the end tag. <tagname attribute ="value">content here </tagname> There are several tags that do not have end tags. These tags are called standalone tags. Generally, they do not control text ; they insert something into your document. For example, the tags for a horizontal rule <hr />, image <img /> or line break <br /> all insert something into a document and do not control text . These standaone tags are closed via a space and a forward -slash: <hr />, <br />, <img />, etc. Remember: xHTML uses forward-slashes, NOT backslashes. This ain't DOS class, folks. Previous | Next Nesting xHTML tags xHTML tags can be applied to content already within an xHTML tag. This is called nesting. When nesting tags, it is important to remember to work inside out when preparing tag order. The first tag to open should be the last tag to close. <1><2><3> text </3></2></1> <strong><span style="font-size:24pt"><em> text </em></span></ strong> It helps to think of nesting with a physical model like walking into a room. You walk up the stairs, open the door, enter the room, turn on the light, walk to the desk, sit, and turn on the computer . To leave, you cannot walk down the stairs, close the door, leave the room , turn off the light, walk to the door, stand, and turn off the computer! You have to undo your actions in the opposite order of the way you did them on the way in : turn off the computer, stand up, walk to the door, turn off the light, leave the room , close the door, and walk down the stairs. Let me repeat that in nice bold letters in case you were sleeping: The first tag to open should be the last tag to close. Previous | Next Tags for document structure The basic structure of every xHTML document is defined by four tags, <html>, <head>, <title>, and <body>. These tags are arranged into the basic xHTML document as shown below: <!DOCTYPE html PUBLIC "-// W3C//DTD XHTML 1.0 Transitional//EN" "http:// www.w3.org/TR/xhtml1/DTD/ xhtml1-transitional.dtd"> <html xmlns="http:// www.w3.org/1999/xhtml"> <head> <title>Document title</title> <meta http-equiv="contenttype" content="text/html; charset=iso-8859-1" /> </head> <body> Contents of document </body> </html> xHTML documents, just like people, are divided into two major parts, the head and the body. In xHTML, just like in life, you only get one head and one body. The <head> contains information about the xHTML document. The most common tag found in the head is the <title> tag. The TITLE appears in the top bar of the browser window interface, and in most operating systems it also shows up in the taskbar. Some modern search engines pay more attention to the contents of the title tag than they do to anything else on the page, so it's important to have a concise, descriptive title tag. The TITLE is also essential for the software used by disabled computer users, and is relied on by the user interface in almost all computer systems. Do not fail to have a concise, descriptive title tag for documents you create for this class. Otherwise, it'll cost you. The body of the document is indicated by the <body> tag. The actual contents of the document--all the things that appear within the browser window-are contained within the body. The body tag can actually take a few attributes and values, but we're not going to study those in this class because there's a great deal more that can be done via Cascading Style Sheets (CSS). When we study CSS, we'll learn how to assign colors, fonts, etc. to everything within the body container. Previous | Next Checkpoint, basic xHTML, tags for document structure: Set up a template file as per the instructions. Create a new file based on it. (See Working in the shell account for instructions.) The template should include the tags for document structure as noted in this section , thus saving you some work. Put your name as the contents of the title container, then repeat it again as the contents of an <h1> container at the top of the page body. Add in a <p> container with a sentence or two about what you might pick for your class project. (Don't panic; you can change your mind later.) Saving xHTML documents Microsoft Windows users: When saving xHTML documents in Windows' Notepad program, pay careful attention to the format into which the document is saved. Select "save as" from the file menu. Save all html documents as text -only* (or Text Document, as in the screen shot below). Always add the extension .html to the file name. (Everyone, not just Windows users.) Never include spaces in the file name of an html file. Give xHTML documents descriptive but short names. The file name will become part of the URL. Therefore, it is wise to make sure that the name is short and simple, all lower-case (preferably), without any spaces in the name, and that it contains no unkind words about your boss. The _ underscore symbol can be used to connect names together but remember when a file name is underlined (such as in a Web page link), an underscore symbol may be hard to see . * saving files as "text-only" or "text document" is doubly important if you're working with older versions of Windows, which will otherwise append a .txt extension on your file (making it page.html.txt, for example). This will force the browser to display the code instead of the rendered html, and will leave you wondering what you did wrong. Worse, since Windows by default hides the file extension, it's hard to figure out what went wrong. Refer to the week one foundation information for instructions on how to change Windows so it'll display the file extensions; this will save you a lot of grief in this class. Once a file has been saved as an xHTML document, it can be viewed using any Web browser. Open the file menu of the browser, select "open" and find the file. Any text or content within the <body> tags should be visible. Every time you add text or more code to the xHTML file, save the document and view it again on the browser. It is not necessary to close the text editor and open the file in a browser each time you make a change to the code; that's why operating systems have windows. Once the file is opened in the browser, click the "refresh" or "reload" button to view additional changes. Provided you have saved your xHTML code, the refresh will reflect any new changes. If the changes don't show up in the browser, try holding down the "shift" key and clicking the "refresh/ reload" button. Pressing "Reload" in Firefox or "Refresh" in Internet Explorer will reload the page again from the saved file or server. It is important to reload the xHTML file every time you make and a save a change to the xHTML code. Previous | Next Checkpoint, basic xHTML, saving xHTML documents: Save this file as an html file as noted here, using the file name "index.html". Open it in a Web browser and see how it looks. Edit the file (using the editor, not the browser) if necessary. Tips for writing good xHTML Writing xHTML code can be a very complex and detailed-oriented process. A single misplaced quotation or misspelled tagname can cause an entire Web page not to function. Pay careful attention to writing out the xHTML correctly. Spell-check and grammar-check your content. Good xHTML is useless if the content's not also good, and no matter who gave you the imperfect content, the Web Developer is the one who gets the blame if it goes online. Word processing programs like Microsoft Word, and Web editing programs like Dreamweaver and HomeSite have spell-check. Use it. Your best bet is ALWAYS a friend or classmate or colleague. Put nothing online that's not been proofread by at least one person you trust. Bad things can happen if you don't heed these instructions to check your spelling and have your work proofread . The hilariously badly translated introduction to the"Zero Wing" game has become an Internet legend, All Your Base Are Belong To Us. It's funny, unless it happens to you. So, remember, if you don't want to become the latest laugingstock of the World-Wide Web, proofread. Many people (and computer programs) think that capitalizing tags and attributes makes them easier to read and more distinguishable from regular text. However, Extensible Markup Language (or XML), coming into more and more use, and xHTML like we use in this class, both require lower-case tags and attributes. YMMV: your mileage may vary. Browsers ignore line breaks, multiple spaces and tabs, so use them to make your code more legible. Keep file names short, and always make them lowercase. This keeps you from having to second-guess file names when you begin to link files together. Do not use spaces in file names. Do not use spaces in file names. Do not use spaces in file names. Got it? Use the comments tag <!-- this is a comment --> to make notes to yourself about design, content or other information for writing your page. The comment tag is only visible in the HTML code and will not be displayed by the browser. Validate your code Valid xHTML code is important. It assures you and me that you are coding using compliant code that won't cause the world to be spoilt . An organization of Web people from the W3C (World-Wide Web Consortium, http://www.w3.org) develops different "flavors" of html code as the spec evolves and changes. In order to validate code, you have to tell the validator what "flavor" you're working with. That's part of why we add the top snippet of code to our xhtml --so the validator knows what spec to check the code against. If the validator finds problems, you can fix them before you turn in your assignment. The code To review what we covered in week one, always add the following code to the very beginning of your xHTML file, to ensure that an xHTML validation knows what rules it's supposed to validate against. This should appear before the opening html tag, as shown. It is easiest to cut and paste this into your work; it is difficult to type. You will not be required to memorize this code for any tests but you should include it on all xHTML documents before you turn them in. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title>Title of Document</title> <meta http-equiv="content-type" content="text/html; charset=iso-8859-1" /> </head> <body> (content goes here) </body> </html> The Process Go to http://validator.w3.org/ and scroll down to "Validate by File Upload" (as shown below), click "browse" and locate your assignment. Then click "check". The results will be displayed in the browser window. They are occasionally clear and precise and might say something like: Line 9, column 103 : there is no attribute "BORDERCOLOR" Which essentially means you've used an attribute that is not supported. Other times you might not understand the results (depending on the error ). In that case, you can bring them to class , copy and paste them into the Q & A discussion section of the class Web site or include it in your assignment. Firefox extensions One of the greatest things about the Firefox browser is "Extensions", which are downloadable add-ons that give the browser extra functionality. Of special relevance to this course are "HTML Validator" and "Total Validator", both of which build xHTML valdiation directly into the browser. HTML Validator: Total Validator: Install it on your own computer and look on the bottom right side of the status bar; you'll see this symbol. Click it and it'll check your code for errors. It'll probably report a hundred of them, most of which you clear up with a single change. Validation tools aren't perfect. or Appearances within your own Web browser will likely be slightly different from these screen shots. Google Chrome and Apple Safari, by the way, have very nice validation tools already built into the browsers. More Firefox add-ons are discussed in the background materials, for those of you who are interested. Previous | Next Formatting text using xHTML If you have ever used word-processing software, selected a string of text and then underlined it or made it bold, you have formatted text. The options available to you in xHTML are much like the ones you would find in any standard wordprocessing software. By using the appropriate tags and attributes, you can control the size, font, color and style of text in your Web pages. Headings are displayed in bold text with line breaks and an extra space above and below the text . The size of the heading is established by the numbers 1-6. <h1> is the highest priority (hence the largest) header, <h6> is the lowest priority and is usually smaller than normal text. It is easy to mistake the number associated with headers as attributes. This is incorrect. The numbers associated with headers are actually part of the tag name. Because of this, they must be included in the closing tag. <h1>This is <h1></ h1> This is <h1> <h2>This is ≷h2></ h2> This is <h2> <h3>This is lgt;h3></h3> This is <h3> <h4>This is <h4></ h4> This is <h4> <h5>This is <h5></ h5> This is <h5> <h6>This is <h6></ h6> This is <h6> Knowledge bonus: notice that the secret ASCII code for angle-brackets (< for <, > for >) had to be used here, to keep the browser from seeing <h1> and trying to interpret it rather than just showing you the characters on the screen. Text on a page, including headings, can be used with the style="text-align: left" declaration to control their alignment a Web page. This style declaration can be set to align headings either left, right or center. <h2 style="textalign:right">Hello</h2> Hello The font, basically the text characters in a document, can be controlled by using the style attribute of the <span> tag. The color attribute allows control the color of the font. The value for this attribute will be a color value. In this example, I used the color value for red, which is #FF0000. <span style This color grid, from Web color expert ="color:#FF0000"> Lynda Weinman, has a chart that shows all the Web-safe colors and their hex values, so you can pick some colors to experiment with. (We'll discuss color in more depth later on in this course.) The font-family attribute allows control of the style of the font. One can specify any font they want, but it will only be displayed if that font is actually on the user's machine. More than one font-family can be specified, multiple faces are separated by a comma, the browser will display the first one available. <span style ="fontfamily:typeface"> On a Windows computer, the default sans-serif font is "Arial" and the default serif font is "Times New Roman". On the Macintosh, the default sans-serif font is "Helvetica" and the default serif font is "Times Roman". If, for example, you wanted the user to see a sans-serif font, you could use this container: <span style ="font-family:Arial, Helvetica, sans-serif">This text uses a sans-serif font.</span> A Windows computer would display the text using the Arial font, a Mac would display it using the Helvetica font, and a computer that had neither of those fonts but had a browser inclined to honor the tag would display using the system default sans-serif font, whatever that may be. <span style="fontsize:value"> Size can be controlled using point size (12pt), pixel size (12px), or the user's default type settings (1em = default, 1.5 em would be half again as big, etc.) EM is preferable, but pt and px are better-supported across ancient browsers. Px seems to give the most consistent appearance. <span style ="color:blue; font-family:Georgia; font-size:32px">Hello Hello Hello</span> Hello Hello Hello You can assign a style to an H1 to change its looks, too. This gives you additional control over how the page looks, but still takes advantage of assigning important text to heading-level instead of paragraph-level. It's important to keep headings inside heading tags, even if you're using CSS to change how the headings look. Why is that important? Some search engines give greater emphasis to the text that's in an <h1> heading, as does text -reader software used by visually impaired people. <h1>An H1 without additional style </h1> Hello <h1 style ="color:blue; font-family:Georgia; font-size:1.4em">An H1 with additional style</h1> An H1 with additional style Use <span> to change the looks of text within part of one paragraph or heading; use <div> to change multiple paragraphs or headings. Use span for part of a paragraph <p><span style="font-size:3em">H</span>ere is a paragraph with a span to change part of it.</p> H ere is a paragraph with a span to change part of it. Use div for multiple paragraphs <div style="color: navy"> <p>Here are lots of paragraphs in a row.</p> <p>And they're all navy-blue.</p> <p>Except for the <span style="color:green">green</span> word.</p> <p>How cool is that?</p> </div> Here are lots of paragraphs in a row. And they're all navy-blue. Except for the green word. How cool is that? There is an older method of changing the appearance of text, the <FONT> tag. It is considerably more limited than what we're learning to do. We don't use the <FONT> tag in this class, we use <span style > and other CSS options . The FONT tag has been deprecated, which means among other things it's going to be eliminated from the next set of HTML specifications. Please do not use the FONT tag in this class; if I see it I will take it an an indication that you haven't learned anything since 1999 and have not been paying attention. Previous | Next Checkpoint, basic xHTML, formatting text using xHTML: Add a leveltwo heading (h2), called "Assignments". Cascading Style Sheets (CSS) Cascading Style Sheets (CSS) are newer than HTML, and can be used in conjunction with it to make dramatic changes in how Web pages look. There's a good reference on CSS at http://www.webreference.com/authoring/ style/sheets/ Style sheets are composed of CSS rules. A rule consists of two main parts: a selector ('h1') and declaration (' color: blue'). The declaration has two parts, property ('color') and value ('blue'). h1 { color : blue } Selector { property : value } This is not too different than HTML, in which we have tags, attributes , and values. HTML TAG < img ATTRIBUTE = VALUE align = "right" src = "photo.jpg" > CSS SELECTOR DECLARATION PROPERTY : h1 { color font-size VALUE : blue ; : 18pt } You can group style rules with the semicolon. Place the entire declaration between curly-brackets. There are three ways to apply CSS: locally (within part of a page, or inline), globally (across an entire page), or linked (across multiple pages, or site -wide). We've already been using CSS locally to format text. Local (inline) CSS (Specific to one tag in a page, uses the STYLE attribute) You can include a style attribute in div and span elements. The block-level div element is used to enclose a division (chapter, section, etc.) of a document that you want to give a distinctive style. The span element is generally used within paragraphs. (Remember, block-level items, like <p> and <h1>, start and stop on a new line.) <p><span style ="font-size: 30px">T</span>his is a drop cap using the STYLE attribute to the SPAN tag.</p> This is a drop cap using the STYLE attribute to the SPAN tag. The <div> tag vs. the <span> tag SPAN is small. Use it only to select a small chunk of text like a letter, word, phrase, or sentences: inside a <p></p> container, or a <li ></li> container (these are list items; we'll cover them in a bit), or a heading (h1 through h6) container. For anything bigger than that (such as more than one paragraph, an entire list, or a whole page), use <div>. The <div></div> tag by itself doesn't do much of anything other than identify a block of a Web page. (A block is an area that begins and ends on a separate line. The <p></p> tags are the most common example of a block tag.) However, you can encase multiple tags (including several <p></p>'s) within one <div></div> and assign an attribute and value. For example : <p style="text-align:center">Here is some text</p> <p style="text-align:center">And more text</p> <p style="text-align:center">And still more</p> could also be written : <div style="text-align:center"> <p>Here is some text</p> <p>And more text</p> <p>And still more</p> </div> <div> is especially handy when you're using Cascading Style Sheets. You can use <div> to assign font face, color, size, etc. to a whole chunk of the document, just once, and not have to mess with repeating the same tag throughout a document the old-fashioned way people who still use the FONT tag would have to (see below): instead of typing all this: <P><FONT FACE="Arial">One</ FONT></P> <P><FONT FACE="Arial">Two</ FONT></P> use <P><FONT DIV: FACE="Arial">Three</FONT></ P> <P><FONT FACE="Arial">Four</ FONT></P> <div style ="fontfamily:Arial"> <p>One</p> <p>Two</p> <p>Three</p> <p>Four</p> </div> This weakness is part of why the FONT tag is being removed from the HTML specifications, and why we don't use it in this class. However, using these inline styles in spans or divs still means you have to re-type them every time you want them repeated . Because CSS offers much better ways to write a style once and apply it many times, the only time you should ever use an inline style is for a one-time event that you don't intend to do again on your Website. Otherwise, we use global or linked style sheets. Read on... Previous | Next Global (page-level) CSS (Specific to an entire page, uses the STYLE element inside the HEAD) It's no fun at all to have to repeat the same style over and over, in every paragraph and heading, just to get the page to look the way you want. You can use a short piece of CSS inside the <head> container to specify how you want the text to look on an entire Web page. <head> <title>Style Element Example - with alternative fonts</title> <style type ="text/css"> <!-body { background: white; background-image: url(mybackground.jpg) } h1 { color: blue; font-size: 18pt; font-family: Arial, Helvetica, sans-serif; font-weight: bold } p { color: green; font-size: 12pt; font-family: Geneva, Arial, Helvetica , sans-serif } a { text-decoration: none; color: red } --> </style> </head> Notice that html comment tag <!-- and --> that's nested immediately inside the <style> container. What's that for? Older browsers that can't interpret the style tag would just ignore it and print the code inside the tag directly onto the page. Those older browsers will honor the HTML comment tag, though, so if the browser cannot understand the <style> container it'll understand the comment container and won't output raw code onto the page . Newer browsers see that opening <style> tag, and know to interpret everything inside the <style> container as CSS, not HTML. Those browsers will ignore the HTML comment tag nested inside the <style> container, but will correctly parse the CSS. Clever, eh? This example style sheet declaration in the <head> of the document sets all h1's to blue and all paragraphs to green. It sets font size and family. The power of global style sheets? One change to the CSS code in the <style> container, and everything in the page changes. Of course, the global style is resident in every page, so that's one change per page. Wouldn't it be easier to do one change per SITE? Read on. Previous | Next Linked (sitewide) CSS (Used across multiple pages, uses the LINK element) The real power of style sheets comes when you link to an external file. The file contains the same rules you'd normally place in the STYLE block at the top of a page. body { background: white; color: brown } /* "color" here controls the color of the text on the page */ h1 { font-size: 18pt; font-family: Arial, Helvetica, sans-serif; font-weight: bold } p { font: 12pt Arial; margin-left: 30px; } a:link { color: red } /* unvisited links */ a:visited { color: blue } /* visited links */ a:active { color: yellow } /* active links */ Copy these rules into a new, completely empty (e.g. no xHTML ) file and name it style.css. To link a page to this style sheet just place the following line in the <head> element of the xHTML page. You should see some significant changes when you reload the page in a browser. <head> <link href="style.css" rel="stylesheet" type="text/css" /> </head> In the LINK element the REL attribute defines the type of link. The rel="stylesheet" is the key, it links the current page to the referenced file. The beauty of linked style sheets is that you can change the look of thousands of pages by changing one file. This is a big time saver for intranet or large site webmasters. Previous | Next Checkpoint, basic xHTML, linked (sitewide) CSS: Open another instance of the text editor (same way you opened it the first time), so you have your index.html page open and can create another page. Create a linked css page as described in this section, and save it as "style.css". Now add the proper <link /> tag to the <head> container of index.html, also as described here. Edit your current template file to include the <link /> to the linked css page so it'll be automatically included in your new files. Making space Adding space on a page Space is more than just the Final Frontier. White space on a Web page helps set apart images and headers and makes text more readable. The spacing tags in HTML can also be used to align various elements on a page to the left, right or center of the screen. Paragraphs and line breaks help to control the spacing in your Web document and operate much like the carriage return on a typewriter or the "return" or "enter" key on a keyboard. The <p>, or paragraph, container tag <p> ...</p>, puts text into a container so you can assign styles or make use of the of the align attribute (align=center, left or right). A <p>...</p> container will place a space above and below the text . <p style="text-align: right">HTML is so much fun I'm going to devote my life to it .</p> <p style="text-align: left">Well, not really; I just said that so I'd get a good grade in the class.</p> <p style="text-align: center">When <em>what</em> freezes over?</p> HTML is so much fun I'm going to devote my life to it. Well, not really; I just said that so I'd get a good grade in the class. When what freezes over? A line break <br /> will start text on the following line. Unlike the <p> tag it will not add any additional space and can be used multiple times. Because the <br /> tag only inserts a break and does not format text, it is a stand-alone tag and does not need an additional closing tag, just the trailing "/" slash. Two useful tags for positioning text on the page are the <div> tag and the <blockquote> tag. Both are block-level items, which means they can cover multiple paragraphs or headings, but cannot be used nested inside a <p> or h1h6 container. The <div>, or page division, tag allows you to move or align text, graphics or tables on a page when combined with the align attribute and its values (left, right or center). It also sets aside a block of the page so you can assign some CSS to it. Text enclosed in <blockquote> tags will be indented slightly from the margins and displayed with spaces above and below, much like a paragraph. Nesting multiple <blockquote> tags increases the indent. <div style="text-align: center">I am learning many different ways to format text in HTML.</div> <blockquote>I am getting a headache from all this.</ blockquote> <blockquote><blockquote> <blockquote>I am getting a headache from all this.</ blockquote> </ blockquote> </ blockquote> I am learning many different ways to format text in HTML. I am getting a headache from all this. I am not only getting a headache from all this, I'm feeling claustrophobic. Although not technically a spacing tag, the <hr /> (horizontal rule) tag can be used to divide Web pages or set off titles and headers. An <hr /> will generally be displayed as a shaded rule the width of the page and will always be on its own line. Attributes can be used to control the thickness , width, shading and alignment (although the results differ widely depending on the user's browser). Because the <hr /> tag only inserts an element and does not format text, it is a stand-alone tag and does not need an additional closing tag, just the trailing "/" slash. Adding space in your code Since a browser will ignore multiple spaces within the html code, you can use indentations, blank lines, etc. to make your code easier to read. Good <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title>Title of Document</title> <meta http-equiv="content-type" content="text/html; charset=iso-8859-1" /> </head> <body bgcolor="#FFFFFF"> <h1>Hello</h1> <hr / > <p><span style="font-face:Trebuchet MS, Arial, Helvetica, sans-serif; font-size:12pt">This is a basic Web page. </ span></p> </body> </html> Not so good <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title>Title of Document</title><meta http-equiv="contenttype" content="text/html; charset=iso-8859-1" /></head><body bgcolor="#FFFFFF"> <h1>Hello</h1> <hr / > <p><span style="fontface:Trebuchet MS, Arial, Helvetica, sans-serif; font-size:12pt">This is a basic Web page. </span></p> </body> </html> Both these examples will show up exactly the same in a browser. However, the top one will be much easier for you to maintain (and for me to grade). Programming instructors are pretty rigorous about demanding that you indent your code. For hand-typed html in a basic text editor like Pico or Notepad, though, all that indenting would be a nightmare, especially when you edit the code and change the length of a line, thus requiring you to un-indent and re-indent everything to make it line up. That could quickly lead to insanity on your part, particularly if you've got some complex html going on. For this class, I'm not requiring strict and consistent indentation in the code; I just ask that you do what you can, within reason, to make your html code easy to read. Web editing software will automatically handle the indentations for you, so in future classes when you move on to working with that software, the indenting issue becomes considerably easier. Previous | Next Making lists Lists can help you organize and present information in xHTML documents. Various list tags and their attributes allow one to choose from several different types of lists in xHTML. There are three types of list, each with its own tag: ordered (numbered) list <ol>...</ol>, unordered (bulleted) list <ul>...</ul>, and definition list<dl>...</dl>. Each item in a list is separated by a line break and has a special tag to denote it as a list item. Lists may be nested within a list, provided they are closed properly. Ordered List <ol> <li>cat</li> <li>dog</li> <li>bird</li> </ol> <ol> <li style="list-style-type: decimal">cat</li> <li style="list-style-type: lower-alpha">dog</li> <li style="list-style-type: upper-alpha">bird</li> <li style="list-style-type: lower-roman">walrus</ li> <li style="list-style-type: upperroman">mastadon</li> </ol> 1. cat 2. dog 3. bird 1. b. C. iv. V. cat dog bird walrus mastadon Unordered List <ul> <li>cat </li> <li>dog</li> <li>bird</li> </ul> <ul> <li style="list-style-type: circle">cat</li> <li style="list-style-type: In an ordered (numbered) list, the style declaration liststyle-type may be used to specify decimal, lower-alpha, upperalpha, lower-roman, and upper-Roman. cat dog bird cat dog In a bulleted list, the style declaration liststyle-type may be used to specify disc, circle and square (to display different styles of bullets). list-style-type can also be used within the individual <li> tags to change the shape of a particular bullet. square">dog</li> <li style="list-style-type: disc">bird</li> </ul> Definition List <dl> <dt>cat</dt> <dd>a purring house pet</dd> <dt>dog</dt> <dd>Man's best friend</ dd> <dt>bird</dt> <dd>a flying creature</ dd> </dl> cat dog bird a purring house pet Man's best friend a flying creature In a list of terms and definitions <dt> is used to denote definition term, and <dd> is used to denote definition. Previous | Next Checkpoint, basic xHTML, making lists: Beneath the "Assignments" heading, create a bulleted (unordered) list. For list items, you can use these three items: Checkpoints, Project plans, Final project. Making links One of the really big deals about HTML is its ability to link relative information and pages together using hyperlinks. The tag for linking things in a Web page is <a>...</a> The <a> tag defines an anchor or place to be linked within a document. The <a>.....</a> tag is almost never seen without one or more of its accompanying attributes. On a Web page, a link is usually displayed as underlined text and will take a user to a preset location when clicked. The most commonly used attribute for an anchor tag is HREF, used to specify the URL to be linked to. The text enclosed between the opening <a> and closing </ a> tags will be the clickable text. Linking to a Local file A local file, or relative URL, is relative to another document. A local file appears as the file name and extension, and can also include a directory. <a href="filename.html">Name of Link</a> (link to a file in the same directory as the page you're on) <a href="ctn160/filename.html">Name of Link</a> (link to a file in a subdirectory of the one you're currently in) <a href="../filename.html">Name of Link</a> (link to a directory above the one you're currently in <a href="../college/filename.html">Name of Link</ a> (link goes one level above the directory you're currently in, then goes to a file inside another directory) <a href="/archives/filename.html">Name of Link</ a> (the / (slash) at the beginning signifies the site root; this link means go all the way to the very top directory and then work your way to the desired file. Linking all files from the / root makes it easier to copy pages into other directories without breaking the links in them, but it also means the links will only work on a Web server (e.g. not on your computer). If you're visually inclined, keep reading, there are pictures below that show the same relationships. Linking to an External File An external file, or absolute URL, is a file existing on a completely different server. The entire name and address for the URL must be used, including the scheme, http:// . <a href="http://www.whatever.com/">Name of Link</a> In long Web pages, it can be useful to link to sections within the Web page. This can be achieved by naming fragments of the document and linking to them. Linking to a section of the document is a two-step process: 1. First, name the section of the document where you want the user to land after they click on the hyperlink. 2. Now, link to the document section using the named value preceded by the # sign as the destination URL. Naming a section <a name ="name"></a> The value "name" refers to whatever name you wish to give the section. The name should be one word and lower case, and should never contain spaces or symbols. The section enclosed in the tag will be the point of text that is to be linked to. It's like putting a room number outside your Linking to a named section <a href="#name">Name of Section</a> The actual location to link to is always preceded by a # sign and should be the exact same as the value for the <a name >. The text enclosed in the tag will be the actual clickable link. This method of linking is commonly used to provide a link back to the top of a door. If you're sent to room 319 and there aren't numbers on the doors, you'll not find your way. document or for internal navigation. This tag is invisible in the browser window and is only used to give the hyperlink an "anchor point" so the browser knows where to go when the link is followed. Example: <p><a name="partone"></a>This is part one. It contains lots of stuff.</ p> <p>Here's part two. Whoopee.</p> <p>Here's part three. More excitement to follow.</p> <p>Here's a commercial for Husky Deli ice cream.</p> <p><a href="#partone">Go back to part one.</a></p> Targeting links (optional reading for the brave; okay to skip if you're already overwhelmed) By default, a linked document will load in the same window that originally held the link. (Otherwise, for example, every time you clicked a link on the Web you'd launch a new window or a new instance of the browser.) The first thing to do is to make up a name for the window into which you want the link to load. This provides a way to refer a link to a specific named window. Now any link can load a document into this window if we use the target attribute. <a href ="page3.html" target="mainwindow"> The first time the user clicks a targeted link, the browser will open a new window and will assign the chosen target name to that window. Subsequent links to that target will load in this window. You can also force the browser to open a completely new window for a link, by way of the _blank target: <a href="page1.html" target="_blank"> In this case, page1.html would always open in a completely new window. Each time a link is targeted to _blank it will open a new window. When used for multiple links, _blank has the potential to confuse users, leaving them with multiple windows open. Previous | Next Checkpoint, basic xHTML, making links: Create a link that goes to our course Website at http://tiny.cc/ctn160. The mailto: value The href attribute of the <a> tag (usually used to initiate another Web interaction, as in <a href ="http://www.opaldata.com/the_end/">click this to go to the End of the Internet</a>) not only leads to files or Websites, but can also (if the browser allows it) launch the browser's email program if you use the mailto: value, as in <a href ="mailto:[email protected]">email [email protected]</a> Bear in mind, if the computer is a shared one it's likely the browser has no email program--the ones in the library don't--then clicking this tag won't let the user send email. That's why it's good to also include your email address in the hotlinked text. Of course, putting your email anywhere on the page sends a big invitation to spammers, so be prepared. It's wise to set up a disposable, free email account (gmail, hotmail, yahoo, etc.) to publicize on the Web, rather than opening up your personal email to every spam king on the planet. Previous Here's a handy reference Website: List of tags and attributes. Checkpoint, basic xHTML, the mailto: value: Add an email link to yourself if you wish. Make any additional style changes you'd like. If you're not working in a shell account, then follow the instructions from the FTP section of this course, (in conjunction with the ones provided by your Web host provider if you're not using a freeshell.org account), to upload your index.html and style.css files to the Internet. If you are working in a freeshell.org shell, this step is already done; just type mkhomepg -p (enter) at the command prompt. Firefox addons Now find the index.html file on the Internet, copy its URL, and add it to the my URL?" forum on the course Website. Trouble uploading your files (extensions) or"What's finding them once they're uploaded? Come to the Question and Answer forum and let us help out. One of the greatest things about the Firefox browser is "add-ons" (or "extensions"), which are downloadable additions that give the browser extra functionality. These are a few of my favorites for helping with Web development. You'll not be able to add these to the shared computers in the lab, but they should work for your home version of Firefox. I have listed some of my favorites below. These things sometimes fall behind the most current browser version, get replaced by other tools, get abandoned , change names, etc. If you can't find something mentioned on this page, try searching for a similar tool. (Website listed in instructions below, keep reading.) Use the "Tools" menu in Firefox, and select "Add-ons" if you want to get some add-ons for your browser. The direct URL to the Mozilla Firefox Add-ons page is https://addons.mozilla.org/en-US/ firefox. ColorZilla An eyedropper tool that lets you click on anything on a Web page and find out its color value, so you can match the color in your code to something online. Quicker than trying to sift through a page source or its linked CSS to find out what that color was. EditCSS Lets you modify a style sheet from a sidebar (instead of opening a separate program). Firebug A debugging tool that lets you modify a page and see what the changes do. Quicker than opening the page(s) in Notepad if you're just trying to troubleshoot a quick fix. Has separate tabs for working in xHTML, CSS, Javascript, etc. Link Checker. Checks the links on any Web page and lets you know which ones are broken. Quicker than manually clicking every single link on the page. Open image in new tab Adds an option to the right -click menu that lets you (duh...) open an image in a new tab. Total Validator Builds xHTML validation directly into the browser. Install it on your own computer and look on the bottom right side of the status bar; you'll see this symbol. Click it and it'll check your code for errors. It'll probably report a hundred of them, most of which you clear up with a single change. Validation tools aren't perfect. Appearances within your own Web browser will likely be slightly different from these screen shots. View source chart Organizes the xHTML on the current page into a color-coded chart. (The latest version of this one is now only available by purchasing it from the developer, at http:// jennifermadden.com/scripts/ViewRenderedSource.html, although she often offers the previous version for free.) Web developer Adds a menu and a toolbar with a squillion different useful options from "outline all table cells" to "show detailed information on anything I click on (what CSS it uses, what its parent elements are, dimensions, file size, you name it). This is the most feature-rich of the add-ons mentioned here. Window resizer Resize your browser window to various standard resolution sizes. An illustrated step-by-step guide to using Notepad to make xHTML pages This exercise assumes that you have created a copy of this xHTML template file (instructions are on the template file itself), and that you are using Microsoft Windows as your operating system. Mac users would likely use TextWrangler, and Linux users have a few hundred options. 1. Click the Windows "Start" button (bottom left side of the screen), and then choose "Run" (usually one of the very last choices available). 2. Type in "notepad" and press the "enter" key or click "okay". You can also accomplish this via the mouse. Click "Start", then go find the entry for "Notepad". It's usually under the "Accessories" menu in Windows. It's not always consistent, which is why for simplicity's sake I used the "Run" method instead for my example. 3. Change the "Files of type" option from "Text files" to "All files". Browse to the drive/ directory that contains the template file you created from the instructions on the course Website. Choose that file. (In my example , I named the file "000aaa.html".) 4. Since this is a file we want to re -use for every new Web page we create, it's important to save a copy of the template file rather than to begin altering the template itself. As soon as the file is open, use Notebook's "File" menu, and choose "Save as". 5. Make certain to change the "Save as type" setting before you put in the new file name and save the file. Otherwise, Windows will save it as a .txt text file instead of a .html Web file. And do NOT include spaces in your file names. 6. Customize the page you just saved from the template, changing it into what you want. See also the section "Working in the shell account (ongoing)", above Usability Click a section heading to see its content. View all sections | Collapse all sections The concept of usability Usability considerations run throughout every assignment in this course. Usability is science applied to a common -sense engineering concept: investigating a user's interaction with a product or system . Usability's roots are in manufacturing, but the concept applies just as well to a Web site, a software application, a toaster, or any user-operated device. Interestingly enough, all sorts of traditional usability examples focus on doorknobs. They are an excellent real-world example. The next time you find yourself pushing a door that clearly says "pull", or pulling one that says "push", take a look at the doorknob . Chances are that the doorknob design is what led you astray. Maybe it was a hooked knob on a door you actually have to push [hooks are for grabbing and pulling], or a push -bar across a door you actually have to pull. Several study able, measurable things affect the user's experience with a product or system, including: Ease of learning If a user has never seen the user interface before, how hard will it be for them to figure it out well enough to accomplish basic tasks? Efficiency of use Once a user has gained some experience in how to use the system, how fast can he or she accomplish tasks? Memorability Error frequency and severity Subjective satisfaction If a user has used the system before, can he or she remember it well enough to use it effectively the next time? Or, does the user have to start learning everything all over again? How often do users make mistakes while using the system? How serious are these errors? How do users recover from these errors? How much does the user like using the system? (The above was adapted from the National Cancer Institute's excellent Usability Website at http://usability.gov/basics/.) Next section Know your target audiences To consider what makes something usable, one must consider the: Target population What do you know about your target population that might affect how you design your site? Gender, age, degree of comfort with computers, the user's culture, all can have an effect, as can many other target population characteristics . Target environment Where does your target population do their Web browsing from? From the office? An office with a door, or a cubicle ? From home? A quiet home with no interruptions or a houseful of children? Do they have slow dial-up access or an always-on, superfast Internet connection? What kind of hardware/software is the user likely to have? (Old? New? Powerful enough to easily play a video? Windows? Mac? Linux ?) Target tasks What kinds of things would the user be trying to accomplish when they visit your Website? Are the looking for free information, trying to buy something, etc.? Does your site make it easy? (My current bad example: there's a Website that lets you prepay a public school student's lunches via credit card. You fill out four screens of information, including all the credit card information, hit "submit", and it says "we don't take Visa, only Master Card." Okay... sure wish you'd told me that in the first place and not wasted my time. And, since there are twice as many Visa cards in the U.S. as MasterCards, chances are that a significant number of people trying to use your site are not going to enjoy the experience.) Previous | Next Usability fundamentals How do you know for sure that a site is usable? Start with these usability fundamentals: What is the purpose of the Web site? Sell something Tell something Gather information Etc. Who are the users? Know your users, for they are usually not just like you! Go watch them Ask questions Age Physical characteristics Gender Mental characteristics Workflow Computer skill level Design with your users in mind For example, you're designing a web site for your Granny and her friends. Age Physical characteristics Computer skill level Mental characteristics Workflow Translate what you know/learn about your users into good design Test with your users Make certain your test sample is representative of your audience Make certain your test sample is statistically and scientifically sound Best thing: perform usability test Next best: use your brain Previous | Next Accessibility: Section 508 The following information was heavily excerpted from Patrick Crispen in The Internet Tourbus, http://www.tourbus.com/, Copyright 1995-2003, Rankin & Crispen. In 1998, the US government amended section 508 of the Rehabilitation Act to require all federal agencies (except for national security systems) to ensure that electronic and information technology is accessible to employees and members of the public with disabilities. In other words, federal information must be offered in such a way that accessing it does not pose an "undue burden" to people with disabilities. More information about section 508 is available here: http://www.section508.gov/ . Even though it only applies to electronic and information technology that is procured by a FEDERAL (U.S. government) department or agency, most companies and educational institutions around the world have elected to comply voluntarily with the rules of section 508, especially when it comes to those companies' or institutions' Web sites. Why? One word: traffic. If you can make your Web pages more accessible, especially to people with disabilities (like, say, University of Washington alumni), more people are going to be able to visit your Web pages. WebAIM offers a checklist of the sixteen Web design rules in subpart B of section 508 at http://www.webaim.org/standards/508/checklist, showing you the standards and what you need to do to pass those standards. One out of 12 visitors to a Website is colorblind. How to design Web accessible pages for the colorblind. Previous | Next More information Readings The Road to Recommendation: "... as we've worked with teams during their research studies, we commonly see them a little too anxious to produce recommendations and suggesting fixes that may not actually help their problem." The Dark Side Of Usability: When Business Goals & User Goals Collide Flash 99% Good http://www.flash99good.com/ Everybody loves a flashy web site, right? Wrong! In careless hands, Macromedia's Flash technology can render a site almost unusable. Still more information Usability.gov, the National Cancer Institutes' outstanding usability Website: http://usability.gov/ Designing more usable Web sites http://www.tracecenter.org/world/web/ An excellent compilation of Usability resources, from the "Designing a More Usable World" folks at University of Wisconsin's Trace Center. See their main Website at http://www.tracecenter.org/ for some great information on usability, from general concepts to consumer products to ATMs, and a lot more . Usability news: http://psychology.wichita.edu/surl/usability_news.html Usability pundits Two individuals in particular have made a good living out of bringing the concept of usability into popular culture. Although it's easy for people to fall into the trap of simply following Jakob Nielsen or Jared Spool in their "recipes for a usable Website" rather than doing your own user testing , their work can be a thought provoking start for your own design and user testing . Jared Spool User Interface Engineering http://www.uie.com Jakob Nielsen useit.com http://www.useit.com/ Test your Website in other browsers 15 Tools for Testing your Website Many people use a text-only Web browser called Lynx. This "emulator" shows what Web pages would look like in Lynx, as well as what they would sound like to vision-impaired users who have software to read the words on the page to them: http://www.delorie.com/web/lynxview.html See how the Web looked in earlier browsers: emulators for line-only browsers, and for NSCA Mosaic, Mosaic Netscape, Netscape Navigator, Lynx , Internet Explorer, and HotJava. http://www.dejavu.org/ Check your html documents for accuracy HTML validator: Dr. HTML HTML validator from the people who wrote the standards World-Wide Web Coalition (W3C) (Warning--this one is very picky!) Accessibility WAVE is my new favorite Web accessibility evaluation tool, mostly because it has an easy-to-understand user interface. ADA HTML checker: "Bobby" is a Center for Applied Special Technology program that will help you make web pages accessible to those with disabilities and help you make your Website compliant with the Americans with Disabilities Act (ADA, aka Section 508). Previous Discussion: usability Checkpoint, usability: Several sites are listed in the usability site review instructions. Follow those instructions. Under the forum called "Usability," report what you thought of each site, and share your opinions on the usability of each site, any concerns that arise for you, etc. How well do you think the police sites listed below will serve their users? Before you even visit any of the sites, begin with some basic usability questions as outlined in the usability reference materials. What purposes would a police department Website serve? Who might its primary users be? Under what circumstances? What kind of tasks would users try to accomplish at a police department Website? Now, compare these three sites. Put yourself in the role of a user and see if you can successfully accomplish one of the tasks you identified. Was it easy? Satisfying? Devon & Cornwall Constabulary Martinsburg Police Department Keokuk Police Department Report your pre-visit opinions about site users, circumstances, etc. Then, tell us what you thought of each site, and share your opinions on the usability of each site, any concerns you have, what parts worked really well for you, etc. Read through what others in the class have said. Feel free to post constructive comments and respectful agreement or disagreement with what they said. Treat this like a business team meeting: be honest, professional, candid, and act like you want to keep working with these people even after this conversation has ended. Website planning and overarching design Click a section heading to see its content. View all sections | Collapse all sections About Website planning Creating a good Web site takes a lot more than just spitting out some code and saving it as a Web page. Anybody can paint a ceiling, but that doesn't make you Michelangelo. Whenever someone says "Web design", out come the paintbrushes, colored pens, and Photoshop. Put them away for now. Website design has lots of pieces. Lots of people, if they plan at all, they just prepare the preliminary sketch, or mabye draw up a diagram for the site's form and structure. That's fine in due time, but it 's getting a little ahead of yourself. The main challenge with Web design is to communicate a message to the users of the Web site. So, you'd best start by considering what kind of message you want to communicate and who these users are going to be--basically you need to start with a business* plan for your Website. The Web is very different from traditional print media. Sites that consist primarily of an electronic version of their print materials tend to be sites that don't do very well. Also, the best Website in the world won't fix a bad business * model. There's little point in even working on a Website if the thing behind the Website is not viable. * "Business," as I'm using it here, does not necessarily mean commerce. I'm using it globally, as in "What are you trying to accomplish, for whom, and through what means?" Next section The process of Web design/planning Talk to seven Web designers and you will hear seven different processes for creating a Web site. Generally that process will include some combination of the following: 1. 2. 3. 4. 5. 6. 7. The Idea Test Pre Design- Setting Goals - Determining your Audience Test Flow Charts- Information Architecture- Mapping out the content Test Wireframes - a narrative of the user experience for each page 8. 9. 10. 11. 12. 13. 14. 15. Test Story Boards - The look and feel Test Final Design Test Building the Site Test Test Test Launch You could skip all of these steps and just start coding , but chances are you would have to start over many times, as issues you might not have initially considered began to arise. If you built a store the way lots of people build their sites, you would lay the foundation, put up the walls and start on the roof when the person you are building for says... "but I also want a garage ". So you stop the roof, add some more foundation, put up some more walls and just as you start on the roof again, they say "... can we make it two stories?" Then you have to kill them. You could have saved a lot of time and money (and attorney fees) if you had just sat down in the beginning and planned out the design and steps for building. This is what the Web design process does. Previous | Next Pre-design planning Before you go on a trip, you usually want to have a destination in mind. The same is true of the Web. Before you design a Web site, identify the message you are trying to send. Establish some clear goals for your Website. If you skip this step, you can easily lose sight of what you are trying to accomplish and what message you are trying to send. The process of determining goals for your site is often called pre-design, because (if you know what you're doing) it takes place well before any design work begins. Many professional Web designers create pre-design questionnaires to help clients establish their goals for their Web sites. Although the questions asked in predesign differ greatly from designer to designer or project to project, the following points need to be addressed in some form. Why are you building this site? (site description or statement of purpose ) Who is your audience? and who are you? (or who do you want your audience to believe you are?) What are the objectives of this site? (what are you trying to accomplish?) What kind of information will be on this site? (outline of the information) How will the site affect the user? Remember to reach all of your users (not just the ones with fast modems or fast computers, unless that's your only target audience), and that you are not necessarily representative of the users you have in mind. Read Jared Spool's article The Road to Recommendation, in which he cautions against deducing poor inferences that don't actually explain what's happening in the design. Previous | Next Site diagrams Site diagrams Before the first nail is hammered, an architect maps out onto a blueprint the layout of the rooms, where doors and windows will go, and how people will interact with the building and use it. An architect who creates and builds from a blueprint is a lot more credible than one who doesn't, and also charges a lot more money. In the world of Web design, the same process is essential before we begin to build the Web site, and the same concepts of credibility and fees also hold. A Web designer must determine how people are going to move through the Web site, how they will navigate from section to section and how the sections will be linked together. This blueprint for a Web site is sometimes called a flowchart, flow diagram, or site diagram, or site map. Creating a site diagram Once the pre-design step has been completed, the next step is to create a diagram. There are entire software packages devoted to mapping information. One such program commonly used in the industry is Visio, now owned by Microsoft. More affordable (as in free) but a bit of work is the concept mapping software from the University of West Florida Institute for Human and Machine Cognition. You may already have software on your computers that would allow you to create attractive and professional looking site diagrams. Microsoft Excel and MS Paint are both options, and most word processors include a way to create a basic organization chart, which might do the job nicely. My recommendations, both in terms of being free and easy to use, are the Web-based mind-mapping tools at either http://www.writemaps.com or http://bubbl.us/. Writemaps gets the advantage; it lets you include a purpose explanation and put notes on the page. List of all the content that you want to include in your site. You may find that as you create your list, some items are combined and others are omitted. After you have come up with a list, write the name of each element on a card or post-it note. Using a plain piece of paper, organize the elements into a desired configuration that represents how the various sections of the site will interact and how the user will navigate through the site. Later, draw lines between the various elements to indicate possible links and navigation. Examples of basic flow diagrams Previous | Next Wireframes In web-speak, a wireframe is a skeletal rendering of every clickthrough possibility on your site - a text-only "action," "decision" or "experience" model. Its purpose is to maintain the flow of your specific logical and business functions by identifying all the entry and exit points your users will experience on every page of your site. The goal is to ensure your needs and the needs of your visitors will be met effectively in the resulting website. You wireframe first, before a single line of code is written, a single graphic or color is chosen, or a single word of copy is composed. Wireframing is not concerned with design, navigational layout, content or even the developers' and designers' concepts of how to produce your website. (See a sample HTML wireframe.)... How do you create a wireframe? The process begins with a dialogue. Together, you and your developers determine what needs to be done to translate your business successfully into a website. Nobody knows your business better than you, so you will be doing most of the talking - your developers will be listening to ensure the resulting wireframe accurately represents all the "whats" pertaining to your business. You answer the "what" questions, "action" questions: What does a visitor do at this point? Where can a visitor go from here? You ignore questions about what your visitor sees at this point. The wireframe should consist of words - no images - transcribed by your attentive developers based on what you say. In wireframing, you use aural senses (talk/listen) to determine what the site should do. You defer the visual senses (look/feel) to storyboarding, where you attend to how the site will appear. You cannot "see" how a site will work until you first "listen" to what the site should do! The wireframe can be created on paper: simple pages reflect what every single part of your site does, focusing on ways a visitor would enter and exit from each step in the process. Alternatively, and more conveniently, a wireframe can be created "live," in very simple HTML, so the iterative process of refining the wireframe is quick and easy. From (Wire)Frame Yourself, Grok.com, 2001 More about wireframes Some of the examples listed are considerably more complex than you will probably need for your sites. They show just how richly -done a good wireframe can get. An example wireframe similar to what you should be doing Guided wireframe narrative: an outstanding explanation and sample images Information architecture and Website wireframes: A good (and brief!) article explaining more about wireframes Sitemap and wireframe for a complicated Website redesign Page-by-page wireframes (including layout elements) There's a nice free online tool that will let you create and share wireframes, at http://mockflow.com/. Previous | Next Workplan diagrams You know where you are now (at the beginning of everything), and if you've been listening to me and have created a project plan, you know where you want to end up. How will you get from here to there? What kind of things do you need along the way? (Register a domain name? Find a Web host? Get copyright permissions? Obtain photos? Obtain the written copy for the site?) What are the dependencies-what things can't be started or completed without another thing? (The people in Legal can't approve the copy until Marketing finishes writing it, and you can't add copy you don't have, and can't place the photos until you know what the copy will be.) A workflow diagram, or project plan, identifies everything you'll need in order to complete the Website, what steps you'll have to take to get things done, how long the steps will take, what dependencies exist, etc. A good workplan can help cut down on surprises--like finding out at the last minute that you're missing a key step or piece. Although there are complex, specific products to help set up these plans (Microsoft Project being the most recognized), they're overkill for the size of project we'll be working on for this class. A simple drawing or a bulleted list will be sufficient for our needs. Examples of a workplan flow diagram for a Website Previous | Next Navigation Navigation is an essential part of any Web site. Proper navigation allows the user to figure out where they are and get insight into the Website's organization, and keeps in mind the goals of the site and the user. Some things to remember about good navigation Offer clear, understandable labels Make sure users can tell where they are at all times Ensure users can maneuver without relying on the browser buttons Make all parts of the site accessible Identify the site on every page Support user goals and behaviors Remain consistent throughout the site Common types of navigation There are many different ways to represent navigation on a Web site. The easiest is to have simple text links to the various parts of your Web site. Common navigation setups include navigation bars (both horizontal and sidebars), dropdown or pull-out menus, and common technologies used to achieve dynamic menus include CSS, Javascript, and Flash. More information: The 8 Types of Navigation Pages Navigation gone wild: do a search on the Kartoo search engine Previous | Next Putting it all together: storyboards A well-done storyboard has three parts: 1. A quick sketch of the site's structure 2. A detailed structural outline 3. A detailed sketch of each page, with all of the visual elements of a Web page including the text, interactivity and links mapped out ahead of time to give the designer or client an idea of how things will look. The wireframe provides the outline for your storyboard, which easily can be fleshed-out after all iterations of the wireframe are complete. The resulting storyboard represents all the subsequent decisions pertaining to development and design, grounded in the structure of the wireframe. Your developers and designers need never work in a vacuum - the wireframe guides every design, information architecture, navigation, usability and content consideration. The distinction between wireframe and storyboard is critical, and the two cannot be merged: wireframing defines the "what" of the creative process while storyboarding tackles the "how." From (Wire)Frame Yourself, Grok.com, 2001 Before you upload a single page to the Internet, your key folks ideally have gotten together, thoroughly considered your website from the shopper's point of view and created your storyboard. It looks a lot like a flow chart, with paper pages representing each individual web at it and to make it easy for them to do so. The sheets representing web pages then can be arranged in the logical order of the buying process, with arrows between the pages. These arrows will become the links you provide to help your customers navigate your site, find what they want quickly and buy it easily. There should be different arrows representing differing outcomes based on how your customer might move through the site (primary trajectories, secondary ones and so on). This is critical planning! Every page! It helps you figure out and understand the nuances of your site. Most important, it ensures your customer sees, understands and does exactly what you intend, but in a way that feels totally natural to them. From Behind the Scenes: E-commerce Secrets from Hollywood?, Grok.com, 2001 Page sketches for a storyboard can be drawn out by hand, by computer software programs such as Adobe Photoshop or Freehand, Microsoft Word or Powerpoint, etc. Using an image editing program like Photoshop or Freehand to create this part of a storyboard can have an added bonus, if you can later split it up into the various graphic elements of the Web page. A storyboard is essential for helping us to work out any problems or questions we may have with graphics, content, navigation or links, before we spend time writing the HTML code. The storyboards below illustrate the design of the page including color, graphics, text and link location. A client or designer can get a conceptual idea of what a page will look like and make changes accordingly, before time is invested in writing the HTML. A page mockup for a storyboard Site name Logo here Paragraph one will be filled with exciting information about whatever exciting thing I can inform you about. Navigation1 Navigation2 Navigation3 Navigation4 Navigation5 Navigation6 Navigation7 Paragraph two is not quite as exciting but will keep your interest if nothing better comes along. Paragraph three is a tiny bit more interesting than watching ice melt. Anyone who manages to read this far deserves whatever they get from reading this far. Navigation | Navigation| Navigation A simple sketched storyboard page: A more visually detailed page diagram Once a storyboard is finalized, the next step is to turn it into a Web site. Use the storyboard as a set of visual directions for where you should place graphics, links and text on your Web page. Previous Sample wireframe Checkpoint, Website planning: assemble all necessary Website design documents and drawings, upload everything, and link them to your index.html page. This is an example of the type of wireframe that would be reasonable to expect for the sites you're doing. It tells how the user might come to this page, the purpose of the page, what will be on the page , and what the user will do from here. If you're looking for that online tool that creates wireframes, it's at http:// mockflow.com/. Wireframe for TIC home page TIC Logo Sales & Marketing Life Reposs- Exorcisms Loans & Tums Support essions & Lawsuits TIC, Inc. Success is our business Photo of plainlooking happy customer and scantily-clad groupies . Explanatory text to make the potential customer feel an irresistable urge to spend as much money as they can on our product, and to indicate that if they just buy our product that they will be incredibly successful and popular with attractive people like the ones in the photo at the left. This will be the home page for Three-Initial Corporation, matching the URL in our ads. The prominent placement of logo and company name help establish the brand in the user's mind. Everything on this page encourages the user to click "Buy it now!" The item placements and color choices will make the "Buy it now" button the place where the user's attention gets focused. Other available choices are for various legal information, company divisions, and our other products. Buy it now! Fine print DisWeasel claimer words Contact Call us 911 Discount funerals Links for Website design and planning Web Design Web Design: Bud Uggly Web Design (be certain to check the previous version links) Amateur Web Sites: the Top Ten Signs The Road to Recommendation (article on avoiding the wrong conclusions) Web Design: Lynda Weinman Yale Web Style Manual Navigation The 8 Types of Navigation Pages Web Navigation is About Moving Forward Menus with Beauty and Brains: The Heart of an Excellent Site xHTML code tips Ten rare HTML tags you really should know Bored and underchallenged? Want to try something more advanced? Blueprint CSS: A CSS grid/typography framework Graphics on the Web Click a section heading to see its content. View all sections | Collapse all sections Graphics and color One of the biggest benefits of the World Wide Web is its ability to use graphics and color to convey a message. Unfortunately, one of the biggest liabilities of World-Wide Web designers is their inability to use graphics and color to convey a message. Graphics and color can play a big role in the ability of a Web designer to get the point across to users viewing a Web site... or not. A picture may be worth a thousand words, but on the Web this can actually be more like ten thousand seconds. Graphics take up a lot of space on a Web page and add significantly to the download time. A high -quality graphic will take a great deal more time to download than a thousand words. Although graphics and color are commonplace on most Web sites, the decision to use them is not to be taken lightly . There are many factors to consider when deciding to use graphics and color in a Web site. Monitor display: some monitors only display 256 colors Cell phones: more and more Web browsing is being done on handheld devices. Screen type, size and quality, and the cost of downloading graphics, take on a whole new meaning when you're looking at cell phones. Bandwidth: with a slow connection, graphics take longer Your Message: Will a graphic help your message or detract from it? Cost: Can you use free graphics or will you have to purchase them? User behavior: computer monitors only have 72 dots per inch. If your users aren't expected to print out the images, a low-resolution 72 dots-per-inch (dpi) image will look the same on the screen as a high -resolution 600 dpi image. Of course, it'll look awful if anyone prints it. 150 dpi is a safer bet for low-res; 300 dpi for medium-res. GIF or JPEG or PNG: What graphic format should you use for your images? Next section Web image file formats: GIF, JPEG, and PNG A GIF or Graphic Interchange Format was first type of graphic file on the Internet. It remains among the most popular, universally supported by all Web browsers. A GIF can only contain a couple hundred different colors, though, which is why this format is generally used for images with areas of "flat color" or a limited number of colors--primarily line drawings like logos illustrations, and drawings. GIFs give a Web designer a variety of options when it comes to controlling color and size, including the ability to choose a single color to render transparently. All electronic images are actually rectangular; if you see one that doesn't appear that way, chances are the parts of the rectangle you can't see have been made transparent. With the help of a number of graphic image software programs, GIFs can be animated. Animated GIFs are easy to incorporate into a document, but have been overused and abused to the point where they're seldom seen in professional work. Unfortunately, the Unisys Corporation holds a patent on GIF technology , and has threatened to start enforcing it. This could mean everyone using gifs on their Websites would owe Unisys a royalty for every image. Expect to see PNGs used instead of GIFs before that would happen. A JPEG, JPG or Joint Photographic Experts Group file is the other most common graphic format on the Internet. JPEGs can contain millions of colors and are generally used for photographic images. JPEGs give the Web developer control over file size thorough compression: instead of having each pixel of color rendered separately, it uses mathematical formulas to decide where and how to place color. When a JPEG file is compressed it loses some of the photograph's quality, so compression should be applied with some restraint. PNG or Portable Network Graphics is a newer graphics format similar to the GIF. PNG offers a host of impressive features including compression, transparency and the ability to store text, such as copyright information, along with the graphic. PNG has been officially recommended by the W3C, but support for this new format is limited to newer browsers. SVG, or Scalable Vector Graphics is a vector graphics format designed at W3C (World-Wide Web Consortium, the people who set the standards for the Web). It is written in XML and stylable with CSS,and is starting to become a popular choice for including graphics in XML documents. It's not something most people in this beginning class would be using, unless you're in the habit of working with vectorbased images. WebCGM (Computer Graphics Metafile) Profile is based on an ISO standard for vector and composite vector/raster picture definition. CGM has a significant following in technical illustration, interactive electronic documentation, geophysical data visualization, among other application areas and is widely used in the fields of automotive engineering, aeronatics, and the defense industry. Not so often in beginning Web production, though, so you might not encounter it . Previous | Next Graphics software Most images for Websites need a little help: cropping, resizing, maybe a bit of touch-up. Complex image-editing via Photoshop and image creation via Illustrator are both well beyond the scope of an introductory course like this one. Enough of the people taking this class have some experience with the software in question, though; help should be available via the forums if you need it. There are many different types of software available for creating and manipulating GIFs, JPEGs, and PNGs. Many of these software programs will put a sizable dent in your wallet--several hundred dollars' worth of dent, even with an academic discount. For the professional, though, purchasing an industry standard such as Adobe Photoshop or Adobe Illustrator is well worth the money. For people on a budget, options such as Paint Shop Pro, iPhoto, or Adobe Photoshop Elements are solid software programs that give you many of the features of their more expensive cousins at a more affordable price (around $100 for students). If you own a digital camera then you're probably already set; most digital cameras also come bundled with image-editing programs that will be adequate for your needs in this class. For really budget-conscious beginners, free software is hard to beat. Although almost nothing is truly free (except the GIMP, see below), many software companies offer free 30-day trials--enough to give you good exposure to a particular software. There are also many freeware or inexpensive (under $50) shareware programs that allow one to create and edit images. Sources for Software Free stuff The GIMP (GNU Image Manipulation Program: a full-featured open-source program released for free under GNU General Public License (GPL).) Both Windows and Linux/Unix versions exist, as does a MacOS X version. It's definitely the most powerful and complex of the lot, closer to Photoshop than to anything else. http://www.gimp.org/ Graphic Converter is a Macintosh program, available from http:// www.lemkesoft.com/. It's shareware, free to download and fully -functional (except for batch processing); registration enables batch processing and speeds up launch time. Irfanview, from http://www.irfanview.com/, is a free, easy-to-use image organizing and editing tool for Windows. It's been around forever, and does a great job. Picnik, http://www.picnik.com, is an online photo editing suite. (And, as a bonus, it's a Seattle-based company.) Aviary, http://aviary.com/ is another online photo editing tool, a newer entry to the game that's been getting a lot of attention. Picasa, http://picasa.google.com/ is a software download from Google that helps you organize, edit, and share your photos. Windows, Mac, and Linux versions are all available. Having a hard time making up your mind? Online photo editors comparedis a cNet review and comparison of the top online image editing tools. But wait, there's more! Free, open-source alternatives to Photoshop, http:// sixrevisions.com/graphics-design/10-excellent-open-source-and-free-alternativesto-photoshop/ Tools you can purchase Paint Shop Pro http://www.jasc.com/ Adobe http://www.adobe.com Shareware.com http://www.shareware.com Tucows http://www.tucows.com Previous | Next Adding images to Web pages Images on the Web can be easily (though not necessarily legally) saved to disk by clicking on them with the right-hand mouse button. (That's apple-click on a Mac.) Once saved, images can be inserted into Web page using HTML. Save images locally; don't simply use the URL of where the image is located. You can control an image you've saved locally; an image on another server may be altered or removed, or the file name changed, without your knowledge. The tag used in HTML for inserting an image is <img src ="whateverfile.gif" / >. This tag is stand-alone and does not need a separate closing tag, because it does not format text, but rather inserts something into the page much like a <hr / > tag. The <img / > tag has many attributes , but the most common is src="url". <IMG / > Tag and common attributes <img src="url" /> defines url of file to be placed (replace the letters "url" with the name and location of the file in question) <img src="url" style="float: value" /> allows one to control how image will be displayed in relation to text. Value will be the selected alignment (left, right ) Note: this is in relation to text.. If you want to center an image on the page, use CSS: <p style="text-align:center"><img src ="url" /></p> CSS-P (positioning) allows much greater control over image placement. We'll cover that later on in this course. <img src ="url" alt="text" /> displays alternative text when the image is not displayed. Useful for text only browsers, such as Lynx. Essential for text-reading software utilized by visually impaired users. Some browsers will also display this text when one points to the image. Use is required for this class. Anything turned in to me without alt attributes and values in the image tags automatically loses 10% of the grade. Want to experience the Web without images? There's a Lynx emulator at http://www.delorie.com/web/lynxview.html. Or, you can simply turn off image loading in your regular browser. (Instructions differ between browsers; check the browser's "Help" menu for for details. Opera is by far the easiest for this sort of thing, the "View" menu has a "Load images" toggle, and there's even a toolbar button option. Opera's easily-changed page display options usually run rings around everyone else's.) <img src ="url" border="number of pixels" /> displays a border around the image, thickness is set by the number of pixels. For hyperlinked images (just put an <img> tag inside an <a href...>...</a> container), use border ="0" to keep a blue border from appearing around the image: <a href="next.html"><img src="go.gif" alt="go" width="50" height="50" border="0" /></a> CSS allows much greater control over borders, including the type of line in the border (dotted, dashed, solid , etc.) and the individual borders (left, right, top, bottom). <a href="next.html"><img src="go.gif" alt="go" width="50" height="50" border="0" style="border-left: 3px dashed #ffcc00" / ></a> Notice in that example, border ="0" keeps the hyperlink-colored border from appearing, but it doesn't override the CSS border. <img src="url" width="number of pixels" /> specifies width of the image in pixels not required for HTML, but required for this class--speeds up display of image. <img src="url" height="number of pixels" /> specifies height of the image in pixels not required for HTML, but required for this class--speeds up display of image Pay attention to that "required for this class". Anything turned in to me without width and height attributes and values in the image tags automatically loses 10% of the grade. So, if you want to lose 20% of your grade off the top, leave off the alt, width, and height, and you can just watch your grade go from an A to a C. <img src="url" style="margin-left:10px; marginright:10px" / > specifies how many pixels of space you want on both sides of the image. Replaces the deprecated "hspace" attribute. <img src="url" style="margin-top:20px; marginbottom:5px" /> specifies how many pixels of space you want above and below the image. Replaces the deprecated "vspace" attribute. If you want the same amount of space on all sides of the image, just use something like style="margin: 20px" CSS margin and padding offer much greater control than hspace and vspace, via the option of separate settings for left, right, top, bottom. Example: <img src="myphoto.jpg" width="150" height="200" alt="This picture of me at the beach was taken in 2003." style="margin-top:10px; margin-bottom: 10px; marginleft:15px; margin-right:15px; float: right; border: 2px solid # 000000;" /> HTML What it does img Tells the browser to put an image here. src="myphoto.jpg" Uses a file called myphoto.jpg as the image. width="150" height="200" Tells the browser to set aside a space 150 pixels wide and 200 pixels tall, into which this image can be loaded. Now the browser can continue loading the rest of the page while it's waiting to bring in the image from the Web server. alt="This picture of me at the beach was taken in 2003." If you can't see the image, this text shows up instead. style="margin-top:10px; margin-bottom: 10px; margin-left:15px; marginright:15px;" Puts a 10-pixel margin above and below the image, and a 15-pixel margin on both sides of it. style="border: 2px solid # 000000;" Puts a solid black 2-pixel border line around the image. style="float:right" Puts the image on the right side of the page, and aligns any text in the area to the left of the image. Previous | Next Finding images There are many different ways to find images on the Internet. Google, AltaVista and Lycos are among the many search engines that offer a special option to search for images. Stock photography--professional photography cataloged by subject and available for your use--can be found for a nominal fee at many places on the Internet . Companies such as Corbis and PhotoDisc offer reasonably priced stock photography for use on the World Wide Web , and istockphoto.com and stock.exchng (http://www.sxc.hu/) offer downright cheap stock photos. I suggest you avoid the Microsoft clip art that comes with Powerpoint; we've all seen it . A lot. Powerpoint poisoning is a tragic thing. Wherever you get your clip art or photographs, make sure that you have permission to place them on your Web page. Without permission you're probably either breaking a copyright agreement or stealing. 25+ Excellent Free Stock Photo Sites for Designers 100 (Legal) Sources for Free Stock Images Creative Commons http://www.creativecopyright.org This nonprofit site offers flexible copyright for creative work. It also has a great section on interesting ways to cite credit for copyrighted information. Clip Art.com http://www.clipart.com Lots of loud or cheesy graphics can obscure your message and annoy your audience, but adding reasonable clip art to a document can be a great way to practice the <img> tag. Adding unreasonable clip art can be a nice touch for your bad html project for this class. Most of the clip art available at clipart .com is free. Try adding some animated gifs. Media Builder http://www.mediabuilder.com/ Do you want to make a cool animated banner? Don' have a graphics editor but need to crop a photo? Do you want to make your own buttons? Media Builder allows you to do all of these things and a lot more . It's all free, if you can tune out all the ads. For an example , check out the skittish graphic below: Previous Advanced resources 33 Tutorials to Unleash the Photoshop Beast in You Create Non Destructive Reflections in Photoshop Background: Image maps An image map is basically a large image that has multiple hotlinks within it. he user will wind up on a different page depending on where in the image they clicked. Image maps are often used as a sort of site navigation device. Server-side image maps, in which all the action occurs on the server, are beyond the scope of this class since we can't control what the server will do and whether or not it will support an image map. Instead, we'll briefly review client-side image maps, which rely on a few additional lines in your HTML to give the browser additional instructions. Here's a sample of what an image map and the code that makes it work would look like. <p> <img src="imagemap01.gif" width="149" height="97" border="0" usemap="# imagemap01" alt="" / > <map name="imagemap01"> <area shape="poly" coords="75,10,74,24,80,27,80,42,87,46,89,54,95,57,100,57,100,53,142,54,142,10, 76,10,76,10" href="montana.html"> <area shape="poly" coords="66,8,74,11,73,23,79,28,80,46,86,45,91,58,98,57,99,77,66,78,64,8" href="idaho.html"> <area shape="poly" coords="18,36,34,46,66,42,65,76,10,76,16,56,18,36,19,35" href="oregon.html"> <area shape="poly" coords="14,18,18,37,30,40,33,45,67,41,66,9,22,9,15,17,20,33" href="washington.html"> <area shape="rect" coords="99,53,143,91" href="wyoming.html"> <area shape="default" nohref> </map> </p> Creating image maps Hand-coding an image map is, thankfully, seldom necessary. Most Web-editing tools have built-in image map tools. So do many image editing tools, such as GIMP and Photoshop. There are also many stand-alone freeware image map creation tools for most platforms, including: Windows, Toma Image Mapper, http://www.tomaweb.com/freeware.asp Apple Classic OS, IMM (Image Map Maker), http://www.tucows.com/ preview/206187 Linux, KImageMapEditor, http://www.nongnu.org/kimagemap/ Freeware image editors that include image map capability: Mac OS X and Classic , GraphicConverter, http://www.lemkesoft.com/ Windows, Mac OS X and Linux , Gimp, http://www.gimp.org/ Using a tool like these makes creation of image map as simple as outlining an area with the mouse, then typing in the destination URL. Use the mouse to outline an area you want to hotlink. Type in the destination URL you want linked to this area. The program will generate the HTML code. More information Web Monkey: Image maps http://www.webreference.com/authoring/graphics/imagemaps.html Image editing practice Optional exercise--not a requirement or checkpoint Scenario: Congratulations, you just got the big contract for the new Website for "Fun in the Sun Beach Cabins " in Baja. Of course, you only have three days to put the site online before the 30,000 brochures they printed with the URL hit people's mailboxes. The good news: they flew you down for the weekend so you could work onsite and get great photos. The bad news: the first fog the area has seen since 1856 has blown in, and all your photos look more like "Misery in the Fog" than "Fun in the Sun". Your client will not accept a photo of a foggy day. If that's the best you can do, you're fired--and you have to pay for the trip and the lodgings. Photoshop challenge: Save the attached 4.1 MB fog1600.tif file onto our computers, turn it from a foggy day into a sunny one, resize the photo to a reasonable size for a Web page, and then export the file as a Web -friendly graphic. New to Photoshop? Here 's one option for how to pull this off. Clear a foggy day Image-editing exercise 1. Adjust the exposure levels Open fog1600.tif in an image-editing tool such as Photoshop, which is what's available on the graphics workstations on campus. In the layers palette, drag the background layer onto the New/copy layer icon New/copy to makelayer a copy you can work with icon (thus keeping the original safe, just in case you really goof up). Layers palette From the Image menu, choose Adjust, then Levels, and check the Preview box if it's not already selected. (These labels and screen shots are from Photoshop menus. If you're using GIMP, right-click the image, select Colors, then Levels. The palettes and controls might differ slightly betweeen image editors, but not so much that you can't figure it out.) The thing that looks sort of like either Levels the North Cascades at night or a deranged electocardiogram is called a histogram. Directly below it is a bar with three pyramid-shaped sliding controls. Drag the left-hand (black ) control to the foot of the mountains nearest it. Now bring the white levels slider from the right over until it's below the right side of the histogram. Now, move the middle (grey levels ) slider to the left until the exposure levels and contrast both look good. By the way, your histogram won't look like the one in this picture; it's not a screencap of the levels on the photo we're working with. I have to leave at least something to your imaginations! 2. Begone, gray sky! Before we put in the new blue Photoshop toolbar sky, we have to get rid of the old gray one. From the Tool palette (look over there --> to see what it looks like), pick the Magic wand tool. (It selects pixels of similar colors). When you click the magic wand, you'll notice the controls change slightly and there's a setting for Tolerance somewhere on the screen. (Usually at the top for Photoshop, and on the bottom of the tool palette for Gimp.) Set the tolerance to 10 and select the anti-alias (look it up) box if it's not already checked. Hold down the shift key and start clicking around in the sky until it's all been selected. If you accidentally select the water, just use Edit, Undo to de-select it. Once you've got all the sky selected, just press delete on the keyboard to make the selected area go away. Turn off visibility in the original background layer via the Layers palette, by clicking on the icon that looks like an eye. You'll find it to the left of the layer name. (Refer to the first image on this page if I just lost you.) 3. Bring on the blue skies On the Layers palette, click the New/copy layer icon New/copy to makelayer a new layer for our icon welcoming blue sky. Drag the new layer between the background and the background copy layers. Toward the bottom of the toolbar, click the foreground color swatch (see the toolbar figure above if you need help finding it). Choose something in the way of a sky blue. Click the background color swatch, and pick either white or a lighter shade of blue. On the toolbar palette, select the gradient tool. It shares the same space on the toolbar as the paint bucket tool, so if you see the paint bucket, left click on it and hold the mouse button down for a few seconds, and the option to pick the gradient tool will appear. With the the gradient tool selected, click the top middle of the picture and (by holding the mouse button down) draw a line to either the edge of the water or the bottom of the picture (depending on how you like your sky to look). This should give you a reasonably realistic blue sky with some white haziness near the horizon. In the layers palette, select the background copy. Use the eraser tool on the toolbar palette to get rid of any artifacts from when you deleted the original sky. Go back to the Image menu, choose Adjust, then Levels, and fine-tune the levels until you're happy. Save the file as a Photoshop-format (.psd) file, so you'll have a copy of the original should you need to work within the layers again. (Always work on the highest-quality vesion of an image, then export the results to a lower-quality Web image like a jpg. Speaking of which... export the finished image to a .jpg file. (From Photoshop's File menu, choose Save for Web, and proceed from there. For GIMP users, just re-save the image as a .jpg file and GIMP will do the export to the new file format .) Congratulations; you're now a photo forger. Please don't do anything that would land you in jail. Adapted from a December 2003 Mac Addict article, © Kris Fong, site no longer available. Photoshop user interface images from University of Washington, http://catalyst.washington.edu/help/graphics/ photoshop/ (More Photoshop information is available on this site as well. Color on the Web Click a section heading to see its content. View all sections | Collapse all sections Color palettes The color palette is the total number of colors that a given system is able to generate or manage. Selections vary across operating systems, video cards, etc. Among the most obvious differences is the fact that the Microsoft palette is significantly darker than the one that Apple uses. A photo that looks fine in Windows might be completely washed-out on a Mac, and a photo that looks great on a Mac might be terribly dark in Windows. Middle-of-the-road settings usually work out fine, but if a photo is borderline-dark or light (shot in low light, or in very bright light, for example), check it on both platforms if you can. Next section Web-safe color Real life has the potential for a limitless amount of colors and tones. When you take an image of something from real life to an 8-bit screen that can only display 256 colors, some of the quality will be lost. On the World-Wide Web, only 216 colors are recognized universally by all browsers. These 216 colors are known as the Web-safe color palette. Older computers and many cell phones are still operating on a 256 color system. In this 256 color system, most browsers share a common palette of colors made up of 216 colors. Because these 216 colors are common across different platforms, browsers and operating systems, if you stay within this color range, your color selection will be universally honored. Web Safe Color Palette from Lynda Weinman's site at http://www.lynda.com/ Web-safe colors by hue Web-safe colors by color value When displaying graphics on the web, you can choose to have an image displayed with only these 216 Web safe colors. Although this may result in a loss of quality you can be sure that the image can be viewed universally . How important is this? Everyone's got at least a Super VGA monitor now, right ? Pretty much, but it still depends on your target audience. Are you making a Website for people overseas, or low-income people here in the US? Think about all those obsolete computers given away as tax writeoffs: that's where they wind up. Also, most people aren't carrying around 21-inch true-color high-resolution monitors for their cell phones. Keep your target users in mind whenever you make color choices. Previous | Next Dithering Computers can reduce the infinite color of a photograph or image to 216 Web safe colors is a process known as dithering. Dithering is simply taking pixels of two colors and moving them around to create the illusion that they are a third color. This is how limited-color and black-and-white images such as newspaper photos work. When your browser encounters an image with colors not in its color palette, it dithers two or more colors to display the color on the image , hence affecting image quality. Open this Flash file to see the effect of dithering on an image when you change the color depth (number of colors). Previous | Next Technical stuff on color values Happily, for this class at least, you can look this up instead of having to memorize it. RGB Color The RGB system uses a series of three numbers to represent the intensity of Red, Green and Blue. With 24-bit color these numbers will range between 0-255. The RGB values found in the Web-safe color palette will always be some combination of 0, 51, 102, 153, 204, 255. You will most likely come into contact with this RGB color if you use Photoshop, other graphics programs, or a Web page editor. Hexadecimal Color In order to specify colors in your HTML files, you will need to use Hexadecimal value for a color. Hexadecimal are the numeric values of the RGB. The colors are represented by three pairs of digits. Each pair represents the RGB values. In the Web safe palette Hexadecimal numbers are always represented by combinations of 00, 33, 66, 99, cc, ff. Example White Black FFFFFF R: 255 G: 255 B: 255 000000 R:000 G:000 B:000 Previous | Next Color on the Web: The Concepts Color can effect a person's mood or emotion, it can change a person's perceptions and it can invoke memory. Think about how many times you have used color to describe a person's mood or emotional state. He was green with envy I am feeling blue She was seeing red InfoPlease: The Psychology of Color Now, consider what message the two titles below convey? Who are you going to invest your money with? Does one color speak more to responsibility or to energy? Robert Smith Financial Services Robert Smith Financial Services Robert Smith Financial Services Robert Smith Financial Services Previous | Next How color affects moods From that well-respected and renowned Web Development source, Good Housekeeping Pink: soothes, acquiesces; promotes affability and affection. Yellow: expands, cheers; increases energy. White: purifies, energizes, unifies ; in combination, enlivens all other colors. Black: disciplines, authorizes, strengthens; encourages independence. Orange: cheers, commands; stimulates appetites,conversation, and charity. Red: empowers, stimulates, dramatizes, competes;symbolizes passion. Green: balances, normalizes, refreshes ; encourages emotional growth. Purple: comforts, spiritualizes; creates mystery and draws out intuition. Blue: relaxes, refreshes, cools; produces tranquil feelings and peaceful moods. From Shades of Success (source no longer available online) Color Contrast & Dimension in News Design http://poynterextra.org/cp/ is a well-done 2001 Website that covers color theory and its applications in news presentation. (Requires Macromedia Flash Player.) How color communicates meaning http://carsonified.com/blog/design/color/how-colour-communicates-meaning/ Previous | Next Color on the Web : The Code Adding Color to the Background The background color of a Web page can be controlled using CSS to re-define the body tag. To change the background of a document to this lovely shade of pink, use the following HTML/CSS code. <head> <style> <!-body { background-color: #FFCCCC } --> </style> </head> Adding Color to the Links CSS can also control the color of hyperlinks. Changing the color of the links from the default blue, red and purple, can help give your Web page a sophisticated look and make it more readable--or, it can just muck up its usability. User testing is your friend. The attributes below control the color of the links. a:link The color of link text that has not yet been clicked. Default=Blue a:active The color of a link as the mouse clicks on the it. Default=Red a:visited The color of link that has already been clicked. Default=Purple a:hover:The color a link turns when you mouse over it. There is no default in HTML; links don't change color on mouseover unless you use CSS to tell them to do so. The following code would change our document to a lovely shade of pink with lemon-chiffon colored links that turn light green when they are active and teal after they are visited.---Ouch!---<head> <style> <!-body { background-color: #FFCCCC } a:link { color:FFFFCC } a:active { color: 99FF99 } a:visited { color: 000099 } --> </style> </head> Adding Color to the Text If you want to change the color of the text in the entire document, use CSS to set the color for the body tag. The code below would give us a yellow background with pink text--very hard to read... <head> <style> <!-body { background-color: #FFFF00; color: #FFCCCC } --> </style> </head> If you want to change a section of text you can use inline CSS to change the color property: <span style="color: #FF0000">stand out using CSS</span> Previous | Next Tips on using color Most browsers will display basic colors if you write in the word (blue, red, etc.) instead of using the hexadecimal value (#3366FF). Don't count on this without testing thoroughly. Not all color names are read universally--causing many of the pastel colors to be displayed as white. You will often see HTML code where the # sign is not included with the hexadecimal value. If you omit the #, Internet Explorer will still read the code correctly, but other browsers will not let you get away with sloppy coding. Use the #; that is the correct way to write it . Don't use color just because you can! Gratuitous use of color is distracting and can take the attention away from your message. Use color consistently. Remember that colors can invoke emotions and determine how you are perceived, and that they often have cultural connotations as well. Previous Checkpoint, use of color: Bad Web pages. You've learned enough now to be dangerous. This is your chance. CSS Positioning (CSS-P) CSS Positioning: bye-bye, tables! Tables? We don't need your stinkin' tables! Want something to align to the left, with text to wrap around it? No problem with CSS! Use float: right or float: left. That box thingy over on the right side of this column (the one with the number "1" in it) is in a div container that's been floated to the right, with a border and some padding added so it doesn't run into the other text . You might need to resize your window a bit to see it, but the text will wrap around it and show up below it if the window's small enough. It came about like this: 1 In the CSS: div.float-this { border: 1px solid #000000; padding: 10px; margin: 10px; font-size: 2em; float: right; } In the xHTML: <div class="float-this">1</div> Layout used to consist of going through a lot of pain and suffering figure out how to use tables to position things on a page. Since tables were invented to present data rather than to do design, it was quite a stretch--sort of like using Excel to create a newsletter. You can actually use styles to do the same layout stuff as tables and frames, and a lot more. It's called CSS-P, which stands for Cascading Style Sheets Positioning. Of course, it'll only work in modern Printer-friendly page | Collapse all sections How the heck did he do that? Nice of you to ask. Here's the code: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http:// www.w3.org /TR/xhtml1/DTD/xhtml1transitional.dtd"> <html xmlns="http://www.w3.org /1999/ xhtml"> <head> <title>CSS Positioning: abandoning layout tables</title> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> <style type="text/css"> body { margin:10px 10px 0px 10px; padding:0px; } #leftcontent { position: absolute; left:10px; top:100px; width:45%; background:#fff; } #rightcontent { position: absolute; right:10px; top:100px; width:45%; } p,h1,pre { margin:0px 10px 10px 10px; } </style> </head><body> <h2>CSS Positioning: abandoning what we've learned</h2> <div id="leftcontent"> <div class="float-this">1</div> Of course, it'll only work in modern browsers, so you wouldn't want to do this for everybody. If your audience is likely to be using older browsers, and you absolutely want that layout you're set on, you're pretty much stuck with tables. Luckily, for the rest of us, there's CSS-P. HTML documents are basically a bunch of stacked boxes, either one inside the other or one after the other. These boxes are a block-level elements--the ones that begin and end a line, like <html></html>, <h1></h1>, <p>< /p>, etc. Inline elements, ones that don't start and stop on their own line, like <span></span>, <strong></strong>, <br />, etc. are placed within block-level elements. CSS lets you define a variety of properties for all of these boxes. CSS positioning lets you take these boxes out of the normal flow and positioning them where you want them to be. The position declaration lets you control the position of an element. Choices are: static (in the flow of the page) relative (also in the flow, but slightly adjusted) absolute (fixed position in the document), or fixed (fixed position on the screen). position: static means that the HTML element is positioned by the natural flow of the page. That's what all HTML defaults to, unless you tell it otherwise via CSS-P. position: relative places the HTML element in the natural flow of the page (between the preceding element and before the next one), and lets you adjust its position relative to where it is. What? Okay, once more, in plain language. We're currently in a column that takes up half the page and starts 10 pixels from the left side of the page. Suppose I want the next <p> Want something to align to the left... </p> </div> <div id="rightcontent"> <p>How the heck did he do that? <p>Like this!</p> </div> </body> </html> Printer-friendly CSS Positioning (CSS-P) CSS Positioning home introducing css-p Laying out a page Printer-friendly page | Collapse all sections with CSS a basic layout no frames CSS gone wild CTN 160 Web production This is an example of a page laid out with CSS positioning to do the masthead across the top, the left-sidenavigation and the main content (this part). It uses CSS to change the color of the navigation elements on the left when you mouse over them. Previous | Next Checkpoint: Lay out your page design with CSS-P. Take the storyboard and use a pencil to draw a grid across the page. Once you have drawn the grid, take some time to figure out how to describe the positions and relationships. Try coding it using CSS-P divs for everything you're placing. Elements of your site, such as graphics, text and color, can be plugged into the divs, creating the same look as the storyboard. <?xml version="1.0" encoding="iso-8859-1"?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org /TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title>Laying out a page with CSS</title> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> <style type="text/css"> body { font-family: Arial,sans-serif; color: #333333; line-height: 1.166; margin: 0px; padding: 0px; } #masthead{ position: absolute; top: 0px; left: 0px; right: 0px; background-color:#003366; height: 75px; } #pageNav{ position: absolute; top: 75px; left: 0px; width:178px; padding: 3px; background-color:#003366; border-right: 1px solid #cccccc; border-bottom: 1px solid #cccccc; font: small Verdana,sans-serif; color: #FFFFFF; height: 800px; } #left { padding:10px; } #content{ padding: 0px 10px 0px 20px; margin:80px 0px 0px 178px; border-left: 1px solid #ccd2d2; } #siteName{ margin: 0px; margin-left: 250px; padding: 16px 0px 8px 0px; color: #ffffff; font-weight: normal; 1 of 3 } #sectionLinks{ margin: 0px; padding: 0px; } #sectionLinks h3{ padding: 10px 0px 2px 10px; border-bottom: 1px solid #cccccc; } #sectionLinks a:link, #sectionLinks a:visited { display: block; border-top: 1px solid #ffffff; border-bottom: 1px solid #cccccc; font-weight: bold; padding: 3px 0px 3px 10px; color: #CCCCFF; text-decoration: none; } #sectionLinks a:hover{ border-top: 1px solid #cccccc; background-color: #3A75C4; background-image: none; font-weight: bold; text-decoration: none; } .source { font-family:"Courier New", Courier, mono; font-weight:bold; } </style> </head> <body> <div class="printme"><a href="#" target="_blank">Printer-friendly</a></div> <div id="masthead"> <h1 id="siteName">CSS Positioning (CSS-P)</h1> </div> <div id="pageNav"> <h3>CSS Positioning</h3> <div id="sectionLinks"> <a href="http://tinyurl.com/ctn160">home</a> <a href="reference08_cssp-01.html">introducing css-p </a> <a href="reference08_css-p-02.html">a basic layout</a> <a href="reference08_css-p-03.html">no frames</a> <a href="reference08_css-p-05.html">CSS gone wild</a> </div> <div id="left"><p>CTN 160<br /> Web production</p></div> </div></div> <div id="content"><div style="float:right; "><a href="#" onclick="window.open(self.location),'print'">Printer-friendly page</a> | <a href="index.html">Collapse all sections</a></div> 2 of 3 <h1>Laying out a page with CSS</h1> <p>This is an example of a page laid out with CSS positioning to do the masthead across the top, the left-side navigation and the main content (this part).</p> <p>It uses CSS to change the color of the navigation elements on the left when you mouse over them. </p> <p style="width: 75%; border: 1px solid #FFCC00; background-color:#FFFFCC; float: right; padding:.5em; margin-bottom:1em; font-size:.85em"><strong>Checkpoint: </strong> Lay out your page design with CSS-P. Take the storyboard and use a pencil to draw a grid across the page. Once you have drawn the grid, take some time to figure out how to describe the positions and relationships. Try coding it using CSS-P divs for everything you're placing. Elements of your site, such as graphics, text and color, can be plugged into the divs, creating the same look as the storyboard.</p> <p id="bottomnav"><a href="reference08_css-p-01.html">Previous</a> | <a href="reference08_css-p-03.html">Next</a></p> </div> </body> </html> 3 of 3 Printer-friendly page | Collapse all sections CSS Positioning (CSS-P) CSS Positioning: bye-bye, tables! Laying out a page with CSS How the heck did he do that? Nice of you to ask. Here's the code: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1 /DTD/xhtml1Frames? We don't need transitional.dtd"> <html xmlns="http://www.w3.org your stinkin' frames! /1999/xhtml"> <head> CSS-P with fixed positioning can look <title>CSS Positioning: throw like a frame, one part of the page away your frames</title> <meta http-equiv="Content-Type" stays put while the rest scrolls. content="text/html; (Frames display the contents of one charset=iso-8859-1" /> <style type="text/css"> xHTML page within a section of another page. If the contents are body { larger than the section set aside, margin:10px 10px 0px 10px; then the contents will scroll. Fixed padding:0px; positioning can offer the same effect, } but all within only one file.) #leftcontent { position: fixed; This can be of use for content that left:10px; you want to remain in the same top:10px; place on the page no matter where width:48%; the page the user has scrolled. background:#fff; Common uses include navigation, } logos, background images, and the #rightcontent { like. position: absolute; This won't work in all browsers. If it right:10px; top:80px; doesn't work in one (such as MS width:48%; Internet Explorer), try another (such } as Firefox or Opera). p,h1,pre { Always test to ensure a page will be margin:0px 10px 10px 10px; usable on browsers that aren't able } to render the code the way you want. 1 of 2 Previous | Next CSS Positioning (CSS-P) #source { font-family: courier, courier new, fixed; } </style> </head> <body> <div id="leftcontent"> CSS Positioning: <h2> Frames? We don't need your bye-bye, tables! stinkin' frames, either!</h2> Laying out a page with <p>If you think that was something, wait till you see CSS this...</p> </div> <div id="rightcontent"> Frames? We don't need <p>How the heck did he do that? <p>Nice of you to ask. Here's your stinkin' frames! the code...</p> CSS-P with fixed positioning can look like a </div> frame, one part of the page stays put while the </body> </html> rest scrolls. (Frames display the contents of one xHTML page within a section of another page. If the contents are larger than the section set aside, then the contents will scroll. Fixed positioning can offer the same effect, but all within only one file.) This can be of use for content that you want to remain in the same place on the page no matter where the page the user has scrolled. Common uses include navigation, logos, background images, and the like. This won't work in all browsers. If it doesn't work in one (such as MS Internet Explorer), try another (such as Firefox or Opera). Always test to ensure a page will be usable on browsers that aren't able to render the code the way you want. Previous | Next Big deal. Make it work in Explorer CSS-P gone wild 2 of 2 Checkpoint: Lay out your page design with CSS-P. Take the storyboard and use a pencil to draw a grid across the page, Once you have drawn the grid, take some time to CSS Positioning (CSS-P) CSS Positioning: bye-bye, tables! Printer-friendly page | Collapse all sections Laying out a page with CSS Frames? We don't need your stinkin' frames! Big deal. Make it work in Internet Explorer Using CSS-P with fixed positioning, I can do something that looks like a frame, wherein one side of the page stays put while the other side scrolls. Fat lot of good that'll do me if it doesn't work in the most popular browser, MS Internet Explorer. No problem. Use a table to separate the text as you want it, then use the style to set the size and area of the part you want to scroll. How the heck did he do that? Nice of you to ask. Here's the code: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1 /DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org /1999/xhtml"> <head> <title>CSS Positioning: throw away your frames</title> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> <style type="text/css"> body { margin:10px 10px 0px 10px; padding:0px; } #leftcontent { Previous | Next CSS-P gone wild Checkpoint: Lay out your page design with CSS-P. Take the storyboard and use a pencil to draw a grid across the page. Once you have drawn the grid, take some time to figure out how to describe the positions and relationships. Try coding it using CSS-P divs for 1 of 2 everything you're placing. Elements of your site, such as graphics, text and color, can be plugged into the divs, creating the same look as the storyboard. 2 of 2 CSS Positioning (CSS-P) CSS Positioning: bye-bye, tables! Printer-friendly page | Collapse all sections Laying out a page with CSS Frames? We don't need your stinkin' frames! Big deal. Make it work in Internet Explorer Using CSS-P with fixed positioning, I can do something that looks like a frame, wherein one side of the page stays put while the other side scrolls. Fat lot of good that'll do me if it doesn't work in the most popular browser, MS Internet Explorer. No problem. Use a table to separate the text as you want it, then use the style to set the size and area of the part you want to scroll. How the heck did he do that? Nice of you to ask. Here's the code: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1 /DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org /1999/xhtml"> <head> <title>CSS Positioning: throw away your frames</title> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> <style type="text/css"> body { margin:10px 10px 0px 10px; padding:0px; } #leftcontent { Previous | Next CSS-P gone wild Checkpoint: Lay out your page design with CSS-P. Take the storyboard and use a pencil to draw a grid across the page. Once you have drawn the grid, take some time to figure out how to describe the positions and relationships. Try coding it using CSS-P divs for 1 of 2 everything you're placing. Elements of your site, such as graphics, text and color, can be plugged into the divs, creating the same look as the storyboard. 2 of 2 CSS Positioning (CSS-P) CSS Positioning: bye-bye, tables! Printer-friendly page | Collapse all sections Laying out a page with CSS Frames? We don't need your stinkin' frames! Great. Now what are you This is a look forward to those of Big deal. Make it work in Internet Explorer supposed to do with that? Well, just wait...wild CSS-P gone I suppose someone's wondering how this page was created. Code's over there. --> Previous Checkpoint: Lay out your page design with CSS-P. Take the storyboard and use a pencil to draw a grid across the pageOnc. e you have drawn the grid, take some time to figure out how to describe the positions and relationships. Try coding it using CSS-P divs for everything you're placing. Elements of your site, such as graphics, text and color, can be plugged into the divs, creating the same look as the storyboard. you who might continue working with HTML. It's another page that doesn't seem to work in the most current version of MSIE, sadly. If you're interested, see if you can figure out how I kept the bottom right div from scrolling over the top right div. <?xml version="1.0" encoding="iso-8859-1"?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1 /DTD/xhtml1transitional.dtd"> <html xmlns="http://www.w3.org /1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> <title>Practicing CSS-P</title> <style type="text/css"> p, h2, pre { margin:0px 10px 10px 10px; } div.one, div.two, div.three { position: fixed; 1 of 3 width: 45%; height: 40%; border:solid; border-width: 1px; padding:10px; } div.one { top: 180px; left: 10px; height: 200px; } Great. Now what are you supposed to do with that? Well, just wait... I suppose someone's wondering how this page was created. Code's over there. --> Previous Checkpoint: Lay out your page design with CSS-P. Take the storyboard and use a pencil to draw a grid across the pageOnc. e you have drawn the grid, take some time to figure out how to describe the positions and relationships. Try coding it using CSS-P divs for everything you're placing. Elements of your site, such as graphics, text and color, can be plugged into the divs, creating the same look as the storyboard. This is a look div.two { forward to those of you who might top: continue 180px;working with HTML. It's another that doesn't seem to work in left: page 50%; the most current version of MSIE, sadly. height: 200px; z-index:2; If you're interested, see if you can figure out background-color:#ffffff how I kept the bottom right div from } scrolling over the top right div. div.three { top: 400px; left: 10px; height:45%; } div.four { position: absolute; width: 45%; top: 400px; left: 50%; border: solid; border-width: 1px; padding:10px; z-index:1 } </style></head> <body> <div class="one"><p>Great. Now what are you supposed to do with that?</p> </p> </div> <div class="two"> <p>This is a look forward to those of you who might 2 of 3 Great. Now what are you supposed to do with that? Well, just wait... continue working with HTML.</p> </div> <div class="three"><p>I suppose someone's wondering how this page was created... </p></div> <div class="four" style="font-family: courier, courier new, fixed">Now you know!</div> </body></html> This is a look forward to those of you who might continue working with HTML. It's another page that doesn't seem to work in the most current version of MSIE, sadly. If you're interested, see if you can figure out how I kept the bottom right div from scrolling over the top right div. I suppose someone's wondering how this page was created. Code's over there. --> Previous Checkpoint: Lay out your page design with CSS-P. Take the storyboard and use a pencil to draw a grid across the pageOnc. e you have drawn the grid, take some time to figure out how to describe the positions and relationships. Try coding it using CSS-P divs for everything you're placing. Elements of your site, such as graphics, text and color, can be plugged into the divs, creating the same look as the storyboard. 3 of 3 Tables Click a section heading to see its content. View all sections | Collapse all sections Introduction to tables Tables were originally developed to display rows and columns of data on the Web. It quickly became apparent however to layout-starving Web designers, though, that tables could be used as a way to control the arrangement of elements on a Web page. Even now, the most popular use of tables in Web design is as a layout tool, although CSS does a much better job for layout so that's primarily how we'll do layout in this class. Tables are really meant to hold data, and that's what we're focusing on for them. Attributes for <table> style="position:relative; marginleft:0px" (default) or style="position:relative; margin-right:0px" or left | right according to text. To center a table use a <div> or set margins to auto Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text text text Table aligned right bgcolor In a table, you can set the background color of an entire table the row or a cell. Use hexadecimal values. (And, yet again, you can do this with CSS as well.) border Border value is defaulted at 1 pixel. To turn it off, set it must be set to 0. The number represents a pixel value. As usual, CSS gives you much more control over borders than does an HTML attribute, if you want a highly styled table. CSS borders are in the sample code for a complex data table, covered further along in this section. cellpadding space within cells blue blue Table blue background Border on cell Border off cell cellpadding is set at 15 pixels cellspacing space between cells cell cell cellspacing is set at 15 pixels The summary of a table never shows up in visual browsers; it exists solely for screen readers and speech browsers. It is simply a summary of what the table contains, a longer description than the caption. Most software summary reads the summary immediately before reading the caption. Next section Tags within a table The basic tags found within a table are <td>.....</td> to define table cells, <th>.....</th > to define table headers, and <tr>....</tr> to define a table row. The various attributes of these tags allow even more control over the initial cells within the table. Tag Description Common attributes Contents of this tag display immediately above the table itself. <caption>...</ Usually contains a description of what's going to be in the table. caption> Typically not used in layout, only for data tables. <tr>....</tr> Table row. All table cells and table headers need to be inside a table row. bgcolor valign = vertical alignment style="text-align:" left|right|center refers to the content of the cell bgcolor Table header. Depending on the colspan browser settings, text in a table rowspan header may be bold or larger than valign = vertical default. The table header is used alignment <th>.....</th > for row headers or column th scope="row" headers, those labels in a data table that tell what's in the defined associates the text in this cell with every cells. See the example below. cell in this row th scope="col" does the same thing for columns Table cell (aka table data). Any content in your table must be in <td>.....</td> style="text:align" left|right|center refers to the content of the cell bgcolor colspan either a table cell or a table header. rowspan valign = vertical alignment The following data-table tags are typically not used in layout tables, and are not yet well-supported by all browsers, but they'll be tremendously helpful in the future. <thead> ... </ thead> <tfoot> ... </ tfoot> <tbody> ... </ tbody> Defines a group of header rows (generally the column labels across the top) in a data table. A thead holds <tr> .. </tr> containers, each of which will have <th> ... </ th> containers inside it. A table can only have one thead. THEAD lets supporting browsers include the header rows on each page of a printed, multi-page table, and present a long table with a scrolling body and static header rows. Defines a group of footer rows in a data table. A tfoot will have <tr> ... </tr> containers inside it, each of which will have <td> ... </ td> containers in it. A table can only have one tfoot. Counterintuitively, in the code the <tfoot> is supposed to precede the <tbody>, even though it'll be displayed below the <tbody> on the rendered page. Supporting browsers will include the footer rows on each page of a printed, multi-page table, and will present a long table with a scrolling body and static footer rows. Defines a group of data rows in a table. Supporting browsers will scroll the tbody while leaving the thead and tfoot static . Example table Mortality rates Cats Dogs Cars 5% 12% Curiosity 23% 2% <table border="1" cellpadding="3" cellspacing="0"> <caption style="font-weight:bold; font-size:1.2em"> Mortality rates </caption> <thead><tr> <th> </th> <th scope="col">Cats</th> <th scope="col">Dogs</th> </tr> </thead> <tbody> <tr> <th scope="row"><div style="text-align:left">Cars</div></th> <td><div style="text-align:right">5%</div ></td> <td><div style="text-align:right">12%</div></td> </tr> <tr> <th scope="row"><div style="text-align:left">Curiosity</div></th> <td><div style="text-align:right">23%</div></td> <td><div style="text-align:right">2%</div ></td> </tr> </tbody> </table> Previous | Next Basic tables The most basic table contains at least these container tags: <table> <tr> <td> 123 look at my data! </td> </tr> </table> Any content in a table must be contained within <td>...</td>. Any <td>...</td> must be contained within <tr>...</tr>. Any <tr>...</tr> must be contained within <table>...</table>. Below is a simple table: <table> <tr> <td></td> <td></td> </ tr> <tr> <td></td> <td></td> </ tr> </table> Previous | Next Table sizing Use CSS to control the width and height of a table. Like many of the values we have learned, these can be set by using either pixels or a percentage %. A table set at a percentage will change size only in relation to the window. A table set at pixels will not change size at all. As a default, tables will grow to fit the content placed in side of them. It is also possible to control the width and height of cells. Use the width and height attributes the same way you would for a table. The table below has the width and height of the table and the cells specified. 10% test test test test test The table above is 70% of the screen and the cells are 10% and 90%. By controlling the sizing of a table we can make the layout of Web page extremely precise. <head> <style type="text/css"> <!-table.demo { width: 70%; height: 120px; } --> </style> </head> <table border="2" class="demo"> <tbody> <tr> <td style="width:10%">10%</td> <td style="width:90%">test</td> </tr> etc... Previous | Next Colspan and rowspan colspan will allows one to span multiple columns while rowspan allows one to span multiple rows. Place the colspan or rowspan attribute in the first cell of that row or column. Remove any extra cells in subsequent rows/columns to give the span room to work. A basic table HTML for a 2-row table with three columns: <table border="1"> <tr> <td>row 1 column 1</td> <td>row 1 column 2</td> <td>row 1 column 3</td> </tr> <tr> </tr> <td>row 2 column 1</td> <td>row 2 column 2</td> <td>row 2 column 3</td> row 1 row 1 row 1 column column column 3 2 1 row 2 row 2 row 2 column column column 3 2 3 </table> For example, if you have a 2 column 2 row table with four cells, and you want the first cell to span 2 columns, remove the second cell in that row. Notice below how one must balance the rows and columns spanned. this code works: <table> <tr> <td colspan="2">test</td> </tr> <tr> <td>test</td> <td>test</td> </tr> </table> results --> test test test this code won't do what you want it to: <table border=1> <tr> <td colspan=2>test</td> </tr> <tr> <td>test</td> <td>test</td> <td>test</td> </tr> <tr> <td>test</td> </tr> </table> test results --> test test test test The differences between rows and columns When columns are Remember, under normal If columns go side-toside, something has gone spanned, something goes circumstances, columns across them--like a roof. terribly wrong. always go up and down. When something spans rows, it's probably sitting partly in your seat. I often Rows, on the other hand, If you have horizontal should always go side-to- rows, something bad has sit next to rowspanners in airplanes. happened. side. Previous | Next Keeping track The HTML for tables is hard to figure out just by looking at it. Creative comments and indentations can help. (Note that this deviates from the standard indentation style, in which all the td tags line up in the same place.) <table border="1"> <!-- column 1 lines up here--> <!-- column 2 lines up here--> <!--column 3 lines up here--> <!--this is the first row across --> <tr> <td>row 1 column 1</td> <td>row 1 column 2</ td> <td>row 1 column 3</ td> </tr> row 1 row 1 row 1 column column column 3 2 1 row 2 row 2 row 2 <!--this is the second row across -> <tr> td> <td>row 1 column 1</td> <td>row 1 column 2</ <td>row 1 column 3</ td> </tr> </table> <table border="1"> <!-- column 1 lines up here--> <!-- column 2 lines up here--> <tr> <td colspan="2">test</td> </tr> <tr> </tr> test test test <td>test</td> <td>test</td> </table> <table border="1"> <!-- column 1 lines up here--> <!-- column 2 lines up here--> <tr> <td rowspan="2">test</td> <td>test</td> </tr> <tr> <td>test</td> </tr> </table> Previous | Next Tables and color test test test Earlier in this class, we learned that color can effect a person's mood or emotion. It can change a person's perceptions and it can invoke memory. Combine color with a table and do it well, and you get up with an effective way to direct the attention of your audience. Do it poorly and you still get an effective way to direct the attention of your audience--but to someone else's Website. When using color within a table, there are three options: Color the entire table <head> <style type="text/css"> <!-table { background-color: #9999CC; } --> </style> </head> Color a whole row <head> <style type="text/css"> <!-tr.withcolor { background-color: #9999CC; } --> </style> </head> Color a single cell <head> <style type="text/css"> <!-td.withcolor { background-color: #9999CC; } --> </style> </head> 1 2 3 4 1 2 3 4 1 2 3 4 Header Title Content,Content Section Content, Content, one Content Practical use of color in a table Out of control A B C D E F G H U J K L M N O N P 1 2 5 6 8 Y H C B M D G U Previous | Next Background images Using a background image allows you to experiment with a limited form of layering. Background images in a table can add an air of sophistication to a Web page, jazz up an otherwise dull page, or qualify you for mention at http:// www.webpagesthatsuck.com/. If you insist on taking your chances with background images, there are many ready-made background images that still allow text to be easily read despite the background image. The example below is a simple table with a background image. Welcome to Plant World Dahlias $3 Tulips $2 Rootabagas $1 Parsnips free Brussels sprouts we pay you To add an image to the background of a table <table class ="funky">, use the code below. <head> <style type="text/css"> <!-.funky { background-image: url(background2.gif); color: #FFFFFF; } --> </style> </head> You can also add background images to individual cells, by assigning the class to the td. <table> <tr> <td>No background here</td> <td class="funky">Background here</td> </tr> </table> Backgrounds will tile unless you tell them not to, meaning the same image is displayed multiple times--usually with an ugly seam. Setting the size of the table with pixels or actually resizing the image can sometimes help eliminate this effect. Or, to stop it from repeating, just add background-repeat: no-repeat to the style: .newbackground { background-image: url(background2.gif); background-repeat: no-repeat; } By the way, if you want a background image to be fixed when the page scrolls, you can do it like this: body { background-image: url(background2.gif); background-attachment: fixed; } Previous | Next Tables for layout One of the most popular-but-now-obsolete uses of tables has been as a page layout tool, even though that's not what they're supposed to be used for. In this class, we use CSS for page layout and tables for data presentation, since anything you can lay out with tables you can do better with CSS. Historically (before CSS), tables were used for page layout in many different ways, including giving a document margins, aligning content with a background image, doing complex page layout, and controlling layout of images and text. Nested tables Nested tables can give you a lot of flexibility when it comes to data presentation. However, because you are doing a table within a table, they can also be very complicated. It is important to make sure that every cell, row and table is properly closed. Using spaces and indents between your HTML code can help you to keep things straight and avoid errors. The example below is a Web page that uses nested tables. Arrivals Departures Missing baggage Bonus miles Missing baggage Flight 1 Flight 3 Flight 5 Flight 2 Flight 4 Flight 6 To reclaim your lost luggage, bring your passport, a major credit card, and five gallons of your own blood, to any of our convenient distribution centers in Wyoming. Below, borders have been added to the table so that you can see exactly where the tables begins and ends. Arrivals Missing baggage Departures Missing baggage Bonus miles Flight 1 Flight 2 Flight 3 Flight 4 Flight 5 Flight 6 To reclaim your lost luggage, bring your passport, a major credit card, and five gallons of your own blood, to any of our convenient distribution centers in Wyoming. The HTML for this nested table is below. All of the table tags are in red, and the nested table has been indented. <html> <head> <title>Nested Table Example</title> <body> <table> <tr> <td style="background-color:#CC3399; width:20%"> <a href="in.html">Arrivals</a><br /> <a href="out.html">Departures</a><br /> <strong>Missing baggage</strong><br /> <a href="bonus.html">Bonus miles</a><br /> </td> <td width="80%"> <h2>Missing baggage </h2> <table> <tr> <td>Flight 1</td> <td>Flight 2</td> </tr> <tr> <td>Flight 3</td> <td>Flight 4</td> </tr> <tr> <td>Flight 5</td> <td>Flight 6</td> </tr> </table> <p> To reclaim your lost luggage, bring your passport, a major credit card, and five gallons of your own blood, to any of our convenient distribution centers in Wyoming. </p> </td> </tr> </table> Previous | Next Using CSS to format a complex data table Data tables often present complex information. Good use of color and borders can make these considerably easier to read. Investing some time in setting up custom CSS for the elements in a table will result in more digestible data presentation. College Airlines Flight Schedule Flight Number: From: To: Departure: Arrival: BA 98107 Ballard Fremont 19:20 SSCC 98126 SSCC White Center 19:40 19:21 19:40 1/2 Total: 3 flights The code for the table itself is fairly straightforward. The colors are drawn from the CSS. Here's the code that created this table: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> <title>A complex data table</title> <style type="text/css"> <!-/* datatable style */ .datatable { border-collapse:collapse; font-family:arial, helvetica, sans-serif; font-size:100%; } .datatable caption { font-size:120%; font-weight:bold; color:#000000; padding: 3px; text-align:left; } .datatable thead th { background-color:#666699; color:#FFFFFF; text-align:left; padding: 3px; border-bottom: solid 1px #99CC99; vertical-align: top; font-weight:bold; } .datatable tbody th { background-color:#99CCCC; text-align:left; color:#000000; border-right-width: 1px; border-bottom-width: 1px; border-right-style: solid; border-bottom-style: solid; border-right-color: #99CC99; border-bottom-color: #99CC99; padding: 3px; vertical-align: top; font-weight:bold; } .datatable tfoot td { font-weight:bold; background:#666699; color:#FFFFFF; padding: 3px; vertical-align: top; } .datatable tbody td { background:#FFF; padding: 3px; vertical-align: top; border: 1px solid #DCDCC1; } .datatable tbody tr.odd td { background-color:#CCCC99; } /* end data table */ --> </style> </head> <body> <table class="datatable" summary="This table lists all the flights by College Air leaving campus today."> <caption> College Airlines Flight Schedule </caption> <thead> <tr> <th <th <th <th <th scope="col">Flight Number:</th> scope="col">From:</th> scope="col">To:</th> scope="col">Departure:</th> scope="col">Arrival:</th> </tr> </thead> <tfoot> <tr> <td colspan="5">Total: 3 flights</td> </tr> </tfoot> <tbody> <tr> <th scope="row">BA 98107 </th> <td>Ballard</td> <td>Fremont</td> <td>19:20</td> <td>19:21</td> </tr> <tr class="odd"> <th scope="row">SSCC 98126 </th> <td>SSCC</td> <td>White Center </td> <td>19:40</td> <td>19:40  ;<sup style="font-size:10px">1</sup >/ <sub style="font-size:10px">2</sub ></td> </tr> <tr> <th scope="row">AND 331øø</th> <td>Seattle</td> <td>Andromeda</td> <td>2006</td> <td>4032</td> </tr> </tbody> </table> </body> </html> Previous | Next Table practice exercises Tables are confusing by nature, and the best way to get a good handle on them is to do a lot of them. Try these exercises. Incorporate one of them into either your final project or your Bad xHTML page. If you run into any troubles, start a thread in the classroom discussion area and we'll all work together to problem-solve. Using a table and CSS, create a grid similar to the one pictured below. (Hint: there's sample code within this the table reference document that you can use as a base.) For the content, you may select a subject of interest to you. Feel free to use any color combination you like . Run your code through the validator at http:// validator.w3.org/ and correct any errors it finds. Previous Inline frames Checkpoint, tables: Incorporate a data table into either your class project or your Bad HTML page(s). Click a section heading to see its content. View all sections | Collapse all sections Frames--the good, the bad, and the confusing We've already seen how you can use CSS-P to split the text in an xHTML file so it shows up in different parts of the browser window, even with independent scrollbars for different parts if you so desire. In xHTML, you can also split the browser window into multiple smaller windows called frames, each of which displays the contents of a separate HTML document. The contents within some of these frames can remain constant even when the user is using hyperlinks to change the contents of another frame. The use of frames in Web design remains somewhat controversial. On one hand, frames increase the ways you can display information, and let you combine the contents of two or more separate files into a single browser window. For example, frames can keep the navigation ever-present while the user clicks through content. On the other hand, frames can often be an impediment to users. Frames increase download time because you are actually loading multiple pages, each requiring a separate trip to and from the Web server. Frames can defeat a user's efforts to bookmark a page (the browser saves the location of the page containing the frame, not the actual frames' contents). If a search engine leads a user to a single frame page instead of its containing page, the user won't be able to see the site in its full context. For example, if one frame has navigation and another has content, the user coming from a search engine directly to the content page will have no way to navigate through the site . Next section Inline frames Old-style frames, which combined multiple pages using framesets, are no longer considered best practice; they have a lot of drawbacks. They'll not be covered in the active materials for this class, although for the historians among you, a quick Web search for "frameset tutorial" will yield lots of information about them. The newer inline frame, or iframe, is still of interest, though. The iframe element inserts a frame within a block on a regular html page. Inserting an inline frame within a section of a page allows you to insert an HTML document in the middle of another, to align it with surrounding text, to add scrolling if desired, etc. The file to be inserted inline is designated by the src attribute of the iframe tag. The contents of the iframe container (in other words, the stuff between the <iframe> and the </iframe> serves the same purpose as the value of an alt attribute in an image tag--it will only be displayed by browsers that don't display frames. The text between the opening and closing <iframe> tags only displays in browsers that don't support frames. For browsers that support frames, the following example will place an inline frame surrounded by a border in the middle of the text. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org /TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org /1999/xhtml"> <head> <title>An Inline frame with news</title> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> </head> <body> <h1>Important information</h1> <table> <tr> <td> <h2>My favorite links</h2> <ul> <li><a href="http://www.yahoo.com">Yahoo!</a></li> <li><a href="http://www.google.com">Google</a></li> <li><a href="http://www.cnn.com">CNN</a></li> </ul> </td> <td> <iframe src="newsfeed.html" width="400" height="500" title="Today's news" name="newsframe" scrolling="auto" frameborder="1"> [Your browser does not support frames or is currently configured not to display frames. However, you may <a href="newsfeed.html">visit the newsfeed page</a> to read the latest news.] </iframe> </td> </tr> </table> <hr /> <p>That's all, folks.</p> </body> </html> Scrolling <div> using CSS-P All one xHTML page, including contents of scrolliing area Scrolling <iframe> The scrolling area is a completely separate xHTML page Previous | Next Targeting frames One of the biggest challenges in using frames is making sure that links make the linked documents show up in the correct windows. By default, a linked document wil load in the same window that originally held the link. (Otherwise, for example, every time you clicked a link on the Web you'd launch a new window or a new instance of the browser.) Inline frames divide a single browser window into two or more sections, each of which acts as its own window within the page. One of the benefits of frames is being able to display information (site navigation, for example) consistently in one window (frame) while the information changes in another. This can be achieved by targeting a link toward a specific , named frame. The first thing to do is to name the frame into which you want the link to load. This provides a way to refer a link to a specific named window. <iframe src="page1.html" name="mainwindow" title="site content" width="200" height="200" /> Now any link can load a document into this named inline frame if we use the target attribute. <a href ="page3.html" target="mainwindow"> Previous | Next The base tag The target attribute of the <base /> tag allows one to target a default frame where all linked pages will appear. In this way, rather than providing a target inside the <a> tag for every link on a page, one can simply use the <base /> tag to specify the target window once. The <base /> tag should be placed in the <head> container of your document. The <base /> tag is easily overridden by simply specifying a different target in the <a> link tag. In the example below, all of the links will default and appear in the frame mainwindow, with the exception of the link to page 4 which will override the default and appear in the navwindow frame. Of course, you'll have to specify an <iframe name="mainwindow" /> iframe with the matching name; the target values won't do what you want if they don't match the name of an existing frame. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org /TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org /1999/xhtml"> <head> <title>Link targeting with inline frames</title> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> <base target="mainwindow" / > < /head> < body> < a href="page1.html">Go to Page 1</a> <br /> < a href="page2.html">Go to Page 2</a> <br /> < a href="page3.html">Go to Page 3</a> <br /> <a href="page4.html" target="navwindow">Go to Page 4</a> <br /> <iframe name="navwindow" width="100" height="200" src="nav.html" /> <br /> <iframe name="mainwindow" width="500" height="400" src="main.html" /> < /body> < /html> An iframe name can be pretty much anything you choose, with the exception of four dedicated names that have special meaning. Read on... Previous | Next Dedicated target names There are four dedicated target names that can be used to direct a link to a particular iframe (or an entirely separate browser window) without specifying the name of that frame in the <iframe /> tag. They are _blank, _self, _parent and _top. Each of these names is preceded by an underscore _. <a href="page1.html" target="_blank"> In this case, page1.html would always open in a completely new window. Each time a link is targeted to _blank it will open a new window. When used for multiple links, _blank has the potential to confuse users, leaving them with multiple windows open. <a href="page1.html" target="_self"> In this case, page1.html would open in the same window that the link appeared. In HTML, _self is the default if you do not set a target. Because of this, it is generally used when a target has been set by the <base /> tag. <a href="page1.html" target="_parent"> The _parent target is used with nested frames (frames within a frame). In this case, page1.html would be opened in the parent frame of the nested frame. Nested frames can be very confusing to a user (and to you as a coder) and are not to be used lightly. <a href="page1.html" target="_top"> In this case, the frames would disappear and the page1.html would be loaded in the window, completely without frames. _top can be a very useful target, especially when giving a user the choice to not use frames. Previous Forms in xHTML Click a section heading to see its content. View all sections | Collapse all sections xHTML forms Forms are one of the first steps toward making a Website interactive . Visitors can use a form to submit data (such as an email address), or they can select data (such a page to be viewed). Forms generally have two parts: 1) what the user sees on the screen (written in xHTML), and 2) the processing code that resides on the server and determines the action that the form will take (written in some sort of scripting or programming language). The xHTML interface of the form contains fields for inputting data and buttons for making selections. The processing code, which is far more complicated than the xHTML, traditionally referred to as the CGI (Common Gateway Interface) script, is written in a scripting language such as Perl or TCL or VBScript or asp.Net. This back-end form script is basically a set of instructions for how the information in the form will interact with the server. Learning to write CGI scripts can be a very complex endeavor ; xHTML is quite simple by comparision. Luckily, there are many places on the Web, such as Matt's Script Archive, http://www.scriptarchive.com/ or hotscripts.com, that offer readymade, customizable CGI scripts for free. The script usually has to be placed in a cgi-bin directory on a Web server. A cgi -bin directory is a special directory that allows a form to interact with a cgi script, all without showing the user that script or the contents of the directory. A cgi-bin directory is generally set up by your Internet Service Provider (ISP) or systems administrator. In many cases your ISP may have ready-made scripts already available for its customers to use. Always check with them before doing any other work, since a script that they support will be less headache for you than trying to make one work yourself unless you're a network engineer and a programmer. In any case, once a script is in place and working, simply link to it in the form action (keep reading) to create the interaction. If your Internet Service Provider doesn't have form-processing scripts available for your use, there are a handful of services that offer such scripts for free (usually subjecting your users to an advertisement) or for a modest fee (starting below $ 10/month). In case you've forgotten how Google works, here are a couple of examples: Response-o-matic http://www.response-o-matic.com/ Free AllForms, at http://allforms.mailjol.net/main.html Next section The <form> tag All elements of a form are contained within the <form>...</form > container. The <form> tag is very important , because it is the key to any interaction between the form and the cgi script. <form action="http://www.someserver.com/cgi-bin/script.pl" method="post" title="Show us the money"> The action attribute tells the form where to go so it can find out what it's supposed to do. In more technical terms, it provides the URL location of the cgi script to be used for processing the form. Pretty much every form-processing script on the Internet is different, so you can't view the source on someone else's Web form, copy the form action, use it on your form, and expect it to work. The form action you use has to be the actual location of a script that you verified is available for your use. In the example, we are pretending that there's a Website at http :// www.someserver.com that has, in its cgi-bin directory, a script called "script.pl" that is available for your use. As far as I know, there's no such Website or script, so be sure you replace this with actual information if you want your forms to work. <form action="http://www.someserver.com/cgi-bin/script.pl" method="post" title="Show us the money" > The method attribute refers to how the information will be sent to the server. With the get method, the information is added to the end of the URL and submitted to the server. With the post method, information is sent to the server in a data file. Generally, the script you are using will specify what method should be indicated on the form. <form action="http://www.someserver.com/cgi-bin/script.pl" method="post" title="Show us the money"> The title attribute of a form tag contains information that helps people who have accessibility issues to understand and navigate the form and the page it's on. <form action="http://www.someserver.com/cgi-bin/script.pl" method="post" title="Show us the money"> Previous | Next Form elements Every element in a form should be inside a <label>...</label > container, for accessibility reasons. You'll see this demonstrated as we look at individual examples. A form can offer a number of ways in which the user can input data. Many of these ways are specified by the type attribute of the <input /> tag. <input type="...whatever form the input will take..." / > Along with the type attribute/value, input fields also require the name attribute/ value. This the gives the data inputted in this field a name (duh...) and helps the script determine how to process the information. The value for the name attribute should not have any spaces, although the underscore _ is permissible. The value attribute may be included in an input tag if you wanted to specify the data value-particularly important with checkboxes and radio buttons so you'll know what the user has selected. The input name would correspond to the field name in a database, or the column or row header in a spreadsheet. In a text field, what the user types into the box becomes the value for that input. This code: <p><label for="employment_location">City<br / > <input type="text" name="city" id="employment_location" /> </label></p> <p><label for="user_email_address" >Email address<br /> <input type="text" name="email_address" id="user_email_ address" /> </label></p> Creates this: City Email address Which might wind up in a database looking like this: A B 1 city email_address 2 Seattle [email protected] 3 Bothell [email protected] Use the <label> tag and associated for attribute to identify the exact words that you want to use as the label for the form element. The for attribute uniquely identifies that element. Use the id attribute in the associated form element to tie that form element to its associated label. Don't use the same value for the name and id attributes. The labels may not work for fields where the id and name values are identical. The labels work once these values are unique. <form> <table> <tr> <td><strong><label for="first"> First name:</label> </strong ></td> <td><input type ="text" name="first_name" id="first" ></td> </tr> <tr> <td><strong><label for="last"> Last name:</label> </strong ></td> <td><input type ="text" name="last_name" id="last" ></td> </tr> </table> <p> <input type ="submit" value="Send your info "> </form> Previous | Next <input type="text" /> The text box is the simplest way to input data, and it's the default for the <input / > tag. <p><label for="email address" >Email address<br /> <input type="text" name="email_address" id="email address" /> </label></p> Email Address By default, a user can type as much as they want into the text box. The maxlength attribute imposes a maximum length on content; the value sets the number of characters allowed. The default size for the space displayed in a text box is 20 characters. A user can type as much as they want in there, but they'll only see 20 characters at a time unless you say otherwise. The size attribute, whose value should be the desired number of characters wide, sets the size of the text box. <label for="email"> <input type="text" name="email_address" id="email" size="40" maxlength="50" /> </label> This input field will accept 50 or less characters (maxlength). The size of the box will be 40 characters wide (size ). Enter more text than that and the text will scroll to the side. Previous | Next Checkboxes and radio buttons For text boxes, the value = whatever the user types into the box. Checkboxes and radio buttons allow the user to input data simply by checking a box or button. Because the button or box is turned off or on, and no data is actually entered, the value attribute has to be set within the tag. Radio buttons Radio buttons allow only one of the choices to be selected at a time. You cannot pick multiple radio buttons at once. <p>What is your favorite color<br /> <label for="color choice 1"> <input type="radio" name="color" id="color choice 1" value="blue" />Blue </label> <label for="color choice 2 "> <input type="radio" name="color" id="color choice 2 " value="green" / >Green </label> <label for="color choice 3 "> <input type="radio" name="color" id="color choice 3 " value="red" />Red </label> </p> Blue Green Red CheckBoxes Checkboxs allow one or more of the choices to be selected at a time. You can pick multiple selection boxes for one item. <p>What are your favorite colors<br /> <label for="color choice 1"> <input type="checkbox" name="color" id="color choice 1" value="blue" />Blue </label> <label for="color choice 2 "> <input type="checkbox" name="color" id="color choice 2 " value="green" / >Green </label> <label for="color choice 3 "> <input type="checkbox" name="color" id="color choice 3 " value="red" />Red </label></p> Blue Green Red Previous | Next <textarea /> To create a larger area for text, use the <textarea> container tag. The <textarea> tag is not another attribute of <input />, but rather a separate tag with its own set of attributes and values. The size of the text area is controlled by using the rows and cols attributes. The rows attribute is set to equal the number of rows the text area should have. The cols attribute indicates the width of the text area in characters. Unlike the <input /> tag, the <textarea> tag must be closed, by </textarea>. Anything written within this container tag will appear in the text area as well. <p><label for="My vacation">What did you do on your vacation?<br /> <textarea name="vacation" id="My vacation" rows="5" cols="35"> On my vacation I... </textarea ></label></ p> Previous | Next Form buttons What did you do on your vacation? On my vacation I... The submit button sends the information gathered in a form to the server to be processed. The value for the value attribute changes the text on a submit button; otherwise the button displays the default text, "Submit". <input type="submit" /> Submit <input type="submit" value="send info" /> send info The reset button erases any information that's been typed into the form and returns the page to its original empty state. The button 's default text is Reset, and it can be changed in the same way as with the submit button. <input type="reset" /> Reset <input type="reset" value="start over" /> Start Over You can change the default looks of a button with CSS. <input type="submit" style="fontweight:bold; color:#00FFFF; backgroundcolor:#FF00FF; border: 5px solid # 663399" /> Submit (Nobody said it was gonna be pretty.) Using an image as a submit button You can also use an image as a submit button instead of using the default xHTML button. Use the <input /> tag with the attribute and value type="image" Several attributes are used in conjunction with this and allow you to better control the image. <input type="image" src="button.gif" /> <input name="gobutton" type="image" src="button.gif" alt="Go" style="width: 24px; height: 22px; border: none" /> Set the action of a form to a URL, and clicking on the button will take your user to that Website. <form action="http://www.flipdog.com"> <input type="submit" value="Get a Job" / > </form> Get a Job Previous | Next Other <input /> types There are several other attributes of the <input /> tag that you can use to create a form. You will likely encounter the password and hidden types. The password type functions exactly the same way as a text input, except the contents typed into the input box appear on the screen as *****. Hidden input types send extra information to the CGI script on the server. Website users won't see a hidden field unless they happen to look at the code. <input type="hidden" name="required_fields" value="visitor_email_ address" /> <p><label for="password" >Password<br /> <input type="password" id="password" name="user_pass" /> </label></p> Previous | Next Select lists (option lists) Forms can also display a list of options for a person to select from . The <select> container tag encloses all parts of the list, which consists of individual choices in <option> containers. The size attribute of the <select> tag sets the display to multiple options at once. If you add the attribute/value multiple="multiple" to the <select> tag, then the user can choose more than one item from the option list, by clicking while holding down the Ctrl key (Windows and Linux) or Command key (Mac OS). Pulldown Menu <label for="color choice"> <select name="color" id="color choice"> <option selected="selected" value="red">Red</option> <option value="blue">Blue</option> <option value="green">Green</ option> <option value="yelow">Yellow</ option> Scrolldown Menu <label for="color choice"> <select name="color" id="color choice" size="3" multiple="multiple"> <option value="red">Red</ option> <option value="blue">Blue</option> <option value="green">Green</ option> <option value="yellow">Yellow</ option> </label> </label> Red Blue Green Yellow Red As usual, the name attribute of the <select> tag refers to the name that will be associated with the results of what the user chooses from the form (the field name or column heading if you're used to databases or spreadsheets). For the pulldown menu, the selected="selected" attribute/value of the <option> tag sets an item to be initially displayed. The size attribute within the <select> tag creates a scrolldown menu. The value for size refers to the number of options that will be displayed. When there are more options than are displayed, a scroll is created. Form select lists as navigation tools Form select lists combined with some basic cut-and-paste javascript can create a fairly effective navigation tool, the pulldown menu. When using javascript, you will usually need to paste the actual script in the <head> container of the document for it to work best. Go to.... Go! Pull Down Menu Instructions http://javascript.internet.com/navigation/menu.html Previous | Next Connecting a form action to a working form-processing script My colleagues at Seattle Central Community College, Bill and Sara Newman, have been kind enough to let us use their form -processing script for this class. If your form doesn't work, you can read their reference materials for the script at http:// newmanic.com/forms.asp. Alternatively, you can just copy the html below (scroll below the explanations for easy-to-copy html) and change the contents of each value it so it's tailored to your own site. Do not change the input tag's name, the Response-O-Matic script that processes these pages searches the data input from the form in order to find the content (values) of these predetermined named inputs. 1 <form method="post" action="http:// www.newmanic.com/ formhandler3.asp"> Don't change a word of this line. It's what controls where the form content is sent and what it does. 2 <input type="hidden" name="ToEmail" In the value, replace my email address with yours. value="alboss@ southseattle.edu" / > 3 <input type="hidden" name="ToFirst" value="Al" /> <input type="hidden" name="ToLast" value="Boss" / > In the value, replace my name with yours 4 <input type="hidden" name="Subject" value="email from some flounder" / > In the value, replace "email from some flounder" with whatever subject line you'd like email sent by this form to have 5 <input type="hidden" name="Thanks" value="http:// aboss.freehostia.com/ thankyou.html" / > Replace the value with the url of a page on your site--where you want the user to return after they fill out the form. The following xHTML will create visible form fields for the user to fill out. These examples have special names that the script will handle differently, so do not change the name="..." text. 6 <input type="text" name="FromName" /> or <input type="text" name="FirstName" /> <input type="text" name="LastName" /> 7 <input type="text" name="FromEmail" /> The top item captures the user's whole name. The bottom two options let you receive first and last names in separate fields. The FirstName and LastName name="value" pairs must be used together or the form won't work correctly. Have your user enter THEIR email so you can easily respond to them via the form email sent to you upon submittal of your form ~ BUT be sure to use some JavaScript email verification to test for an accurate email address, because a bad email address will break this form Easy-to-copy html: The items in red text are the ones you should change. <form method="post" action="http://www.newmanic.com/ formhandler3.asp"> <input type="hidden" name="ToEmail" value="___________ " /> <input type="hidden" name="ToFirst" value="___________ " /> <input type="hidden" name="ToLast" value="___________ " /> <input type="hidden" name="Subject" value="___________ " /> <input type="hidden" name="Thanks" value="___________ " /> <input type="text" name="FromName" /> <input type="text" name="FromEmail" /> Put all the rest of the visible form fields below this, and don't forget to close the form with </form> after you've put in the submit button. Form select lists as navigation tools Form select lists combined with some basic cut-and-paste javascript can create a fairly effective navigation tool, the pulldown menu. When using javascript, you will usually need to paste the actual script in the <head> container of the document for it to work best. Go to.... Go! Pull Down Menu Instructions http://javascript.internet.com/navigation/menu.html Fun with buttons Set the action of a form to a URL, and clicking on the button will then take your user to that Website. <form action="http://www.flipdog.com"> <input type="submit" value="Get a Job" / > </form> Get a Job Previous Adding interactivity to a Web Checkpoint, forms: If your project site calls for a working form, then add one. You can use the Newmanic script detailed above for this class, although you'll have to work with your ISP or network people if you need a permanent one after this quarter ends. If your project does not call for a working form, then add one to your Bad xHTML site. If you have no idea what kind of form you'd add to your Bad Site, just pretent that you have opened an online store that sells and delivers madeto-order pizza, using your own unique ingredients and delivery methods. Allow your customers to choose from among your ingredients and create their own pizza. Your form should allow the customers to choose from among 3 different sizes, 3 different types of crust, 10 different types of page toppings and 3 different modes of delivery. Don't forget to include in the form some sort of way you can collect your money. Your form should also include proper options for submitting and resetting information. It has become tradition over the years in this class, for the pizza business forms to feature some pretty bizarre stuff. I've had people offering delivery by rocket, teleporter, pixie dust, pony, etc., and including among the ingredients choices such as watermelon rind, lint, gravel, cigarettes, helicopters, armadillo, and so forth. programatically Click a section heading to see its content. View all sections | Collapse all sections Stupid Net tricks, Javascript, Java, and more We don't get the chance in this class to learn scripting languages or Java programming, but anyone who can follow a URL, cut and paste, and follow directions can add some scripting to a Web page. Notice that those qualifications (follow URL, cut, paste) don't include a requirement for having good judgment. This explains a lot of the kind of Javascript features one finds online; along the lines of mouse pointers that turn into dancing, singing teddy bears. Scripts generally make pages more dynamic, either active or interactive with the user, or somehow responding to a specific condition (changing the look of a page depending on the user's Web browser, for example). Next section Server-side scripting Server-side scripting, in which programs run on the Web server, is well beyond the scope of this class. The term server-side means that the program is running on the Web server and does something to the code before it sends it to the Web browser on the user's computer. Brief overview: depending on the server's operating system and server software, common scripting languages include Perl, Server-side Java (though technically not a scripting language), Visual Basic (VBScript or C# (both generally fall under Microsoft .Net), and a few dozen others. They're sometimes lumped together under the generic term CGI, Common Gateway Interface (as opposed to that other CGI, Computer Graphics Interface, which is how you make Star Wars movies). CGI is the agreed-upon standard way a web server communicates with another program (the gateway or CGI program) running on the same machine (e.g. the script), and an external program (such as a browser) on another (client) machine. More information and free scripts Matt's Script Archive (Perl scripts) http://www.scriptarchive.com/ 411asp.net (Microsoft ASP.Net scripts ) http://www.411asp.net/ Java Boutique (free Java programs, aka Java applets) http://javaboutique.internet.com/ Hot Scripts (all sorts of scripting languages) http://www.hotscripts.com/ Scripts.com (all sorts of scripting languages) http://www.scripts.com/ Hundreds of other resources exist and can be uncovered with a quick Web search. Previous | Next Client-side scripting Client-side scripts run on the user's browser. The script code is included in the xHTML page. Common versions are Microsoft Active X (platform-specific to Windows), Java (technically a programming language and not just a scripting language), and JavaScript (both multi-platform). Active X is very powerful, but since it doesn't run on all operating systems it's not a good choice for situations in which you don't control what kind of computer the user has. Java and JavaScript, despite their similar names are entirely different things. Here's a definition from Danny Goodman's JavaScript Pages, http:// www.dannyg.com/javascript/javavsjavascript.html: Java, created by Sun Microsystems, is a full-fledged object-oriented programming language. It can be used to create standalone applications and a special type of mini application, called an applet. Applets are downloaded as separate files to your browser alongside an HTML document, and provide an infinite variety of added functionality to the Web site you are visiting. The displayed results of applets can appear to be embedded in an HTML page (e.g., the scrolling banner message that is so common on Javaenhanced sites), but the Java code arrives as a separate file. JavaScript, developed by Netscape, is a smaller language that does not create applets or standalone applications. In its most common form today, JavaScript resides inside HTML documents, and can provide levels of interactivity far beyond typically flat HTML pages -- without the need for server-based CGI (Common Gateway Interface) programs. Copyright _ 1996-2001 Danny Goodman. More information and free scripts Big Nose Bird (how can you resist a name like that?) http://bignosebird.com/ Javascript samples from DynamicDrive.com http://www.dynamicdrive.com/ Javascript from Internet.com http://javascript.internet.com/ Java applets from ZD Net http://cgi.zdnet.com/slink?42087:5279841 HTML goodies: Java and JavaScript http://www.htmlgoodies.com/downloads/ Hot Scripts (all sorts of scripting languages) http://www.hotscripts.com/ Scripts.com (all sorts of scripting languages) http://www.scripts.com/ Hundreds of other resources exist and can be uncovered with a quick Web search. Previous Checkpoint, Javascript: If you don't already have scripting in your project site or Bad xHTML, go to http://javascript.internet.com/ or another source of free JavaScripts (several are listed above). Find a JavaScript that you like, and that will work in multiple browsers. Follow their instructions to add it to one of the xHTML pages in your project or Bad Website. If it doesn't work, try another one. A lot of the scripts are old andmight no longer work in modern browsers.