------------------------- Week 01 Notes for CST8165 ------------------------- -Ian! D. Allen - idallen@idallen.ca Remember - knowing how to find out an answer is more important than memorizing the answer. Learn to fish! RTFM! (Read The Fine Manual) Unix and the Internet: - the Internet is not just the WWW (HTTP) - but Algonquin College blocks most non-HTTP traffic - in particular, the SMTP port (25) is blocked to external sites - blocks are "drop packet", not "refuse packet" types; they time out - WWW slashes are "forward" slashes because the WWW grew up on Unix machines. DOS/Windows came much later. - Be aware of the history and importance of Open Source in the development of the Internet and its protocols (e.g. RFC). - Internet development was Open Source: - Internet Engineering Task Force (IETF): "Rough consensus and running code." "When I was studying Physics the quickest way to end an argument was to show the explanation in mathematics (albeit a lot of handwaving mathematics!). Most software developers on the otherhand do not grok math, however they surely do grok code. Therefore if you could explain your arguments through code then you would have improved your odds of getting your message through." http://www.manageability.org/blog/stuff/rest-explained-in-code/view "Be liberal in what you accept, and conservative in what you send" (Jon Postel, TCP/IP developer) "If we were all conservative in what we do, then we wouldn't do much that is new, or different. This would seem to retard progress. Of course, the same would be true in protocols so perhaps we need a "where possible" qualifier." http://www.aaronsw.com/weblog/000776 - text-based Internet protocols pre-date XML (everything is text in Unix) - Unix was full of tools to deal with text - an ethereal dump of protocol is often very readable - open-source discussions occur with source code samples - FLOSS (Free/Libre Open Source Software) - Tim Berners-Lee doesn't get royalties for your web site Sending data on the network: Big Endian / Little Endian: - http://www.cs.rpi.edu/courses/sysprog/sockets/byteorder.html Google for a TCP/IP client server socket example: - http://www.cs.rpi.edu/courses/sysprog/sockets/sock.html - http://www.perl.com/doc/manual/html/pod/perlipc.html - http://www.cs.rpi.edu/courses/sysprog/sockets/client.c - http://beej.us/guide/bgnet/ See draft Lab #01 in the course email archives, and the final version in lab01.txt in the course notes. To be done in Week 1: 1. Find the Fall 2006 CST8165 course home page via Blackboard or via: http://teaching.idallen.com/cst8165/06f/ 2. Read the course home page carefully, including the the parts about plagiarism and course notes. Note the important dates. Write down *on paper* the location of the Alternate Web Notes. Read the Course Outline, including the parts about tests and lab attendance. Ensure that you are registered in both the lecture section of the course (010) and the Lab section (011). Find and look at my Timetable. Know how to set up an office appointment with me by email. Review the Course Outline: cst8165-06f.pdf 3. Forward your Algonquin email (see the link on the course home page). Test to make sure that your forwarded Algonquin email works! Send yourself a test message. You must have a working Algonquin EMail address for this course (that you can forward elsewhere). 4. Check that you can login to machines in the T127 Linux Lab. Your initial password is/was: just2day Change it. Remember it. (I cannot reset passwords.) 5. You will need to know how to use the VIM text editor to modify files under Unix/Linux. Review the VIM tutorial mentioned in this Notes file: vi_basics.txt The VI (VIM) Editor - Basics * At the most Linux shell prompts you can type: vimtutor See file vi_basics.txt in the course notes for details. See the vi_refcard reference card in the course notes. 6. For class online discussion I'm using a Course Mailing List, available as a link on the top left of the Course Home Page. Please post questions related to course content to this mailing list. (Please answer the questions if you know the answer!) Do not send me private email questions about course content. Attendance Attendance is critical to course success. (If you know the material and don't need to come to classes, ask for a Prior Learning Assessment. If you paid to be here, please be here.) Lab attendance is recorded - make sure you're signed in each week. Taking Notes You will need to take notes in class. Not everything I say ends up in these online files. If you have a question about course content, the first thing I will ask is to see your notes, to see what you wrote down about the topic. (Often the answer is there!) Textbook There is no assigned textbook. The Internet is your (cheap) friend. I will post URL references for much of the course material. Workload The overall term workload sometimes overwhelms students who try to leave everything to the last minute. You need to put in approximately an extra hour per day, per course, to keep up. There aren't enough hours in a day to catch up in mid-term. Timeliness Late assignments are penalized, usually resulting in a mark of zero. The due date for an assignment is given in the assignment. Read each assignment to know the due date. Preparation Lab time is precious. Most lab exercises are time-limited and will require you to have done advance preparation. If you haven't read the material and done the preparation, you won't finish on time. Standards Like any company, this course has standards for its documents. Assignments must adhere to the published standards. See the course web page for the Standards document. Linux Working Environment The networking taught and used in this course is intended to be portable; you can use most any Linux machine to write and test your code. The final test run must be on the machine given in the assignment specification. This might be one of the Lab Linux machines, or it might be a different machine. Read carefully. Off-hours Lab Access You are encouraged to use the lab outside of lab hours (perhaps even by remote SSH). The hours of operation are posted on the door. You may ask other instructors if you may work quietly at the back of their classes. Remote Access For Windows users, the "ssh" protocol is available in such programs as "ewan" and "PuTTY", which you can download for free from the Internet. Do a Google search for: putty Running Linux at Home You may download and install most any Linux distribution at home for free. Most any distribution will be support the writing and running of the network programs taught in this course. Many Linux distributions (e.g. Knoppix, Mandrake Live, Ubuntu) will boot directly from a CDROM and run entirely in memory, bypassing the need to do any disk installation at all. Be aware that when you shut down such an in-memory system, everything is lost - save any important files on real disk first. Linux User Groups See the Ottawa Canada Linux User Group (OCLUG): http://www.oclug.on.ca/ They meet on the first Tuesday of every month. Plagiarism http://www.cbc.ca/story/sports/national/2004/11/24/Sports/taylor041124 "The lead sports columnist of the Winnipeg Free Press has resigned after he was accused of plagiarizing parts of an article published earlier this month." You must attribute the source of material you use that isn't yours.