Peer to Peer Instant Messaging
|
|
- Alice Cox
- 5 years ago
- Views:
Transcription
1 Peer to Peer Instant Messaging Assignment in Computer Networks I, Department of Information Technology, Uppsala University. Overview In this assignment you will implement an instant messaging system that uses a central server to handle user status. The assignment is divided into four stages, and in each stage you will extend your client to handle more types of messages and implement higher functionality. At the end of the assignment you will have an instant messaging client that can talk to other clients and maintain an encrypted connection to the server. 1
2 1 General Problem Description The purpose of this assignment is to implement a simple peer-to-peer instant messaging client with a central server that keeps track of who is online. All communication will use TCP with messages in clear text. This is to make debugging easier. A code skeleton in C is provided for the client. You are not required to use this skeleton, but you are highly recommended to do so. The code skeleton implements list handling, and parsing input from the standard input among other things. The idea is that you should focus on the network programming part, and should not have to care about things not relating to this subject. A java skeleton is also available but it is untested and there will be no java specific support. This assignment is divided into four stages, which are: 1. Implement simple authorization with the server. 2. Handle PING-messages. 3. Handle the list of users online. 4. Communicating with other peers. To see a full description of the stages see section 2. All the messages are described in section 3, and the code skeleton in 4. The stages build on each other, and you should reuse and extend your code from a previous stage when you implement the current one. Some stages will force you to change things in the code from previous stages, but the changes will be small. See section 5 for information about hand-in instructions. It is important that you follow these instructions to pass the assignment! 1.1 Important Things to Think About The messages are in clear text, remember that when debugging. Never send ints and other types, messages should only be character strings. Remember to use network byte order. If you don t, you will run into problem when dealing with port numbers and IP-addresses. Check return values from system calls, as for example send or recv. These can tell you if the server or another peer has closed the connection. 2
3 If there is an internal error in the server that it cannot deal with, for example it runs out of memory it will terminate your connection. If that happens, try re-connecting. Beej s socket guide is an excellent source of information on socket programming. You can find it at: 3
4 2 Project Stages Stage 1: Connecting to, and authorizing with, the server In short: 1. Connect to the server 2. Implement and send an ATH1 message to initiate authorization with the server. 3. Handle the ATH2 response to the server 4. Handle the ERRO messages from the server. In this part of the lab you will use simple client/server interaction to register your peer at the server. You will need to compose a correct ATH1 command, send it to the server and handle the ATH2 message the server will send back. Refer to the Messages chapter to see how these messages are defined. You can safely drop any other messages you receive from the server. However, it might be worthwhile to handle the ERRO messages the server will send if something is wrong, as it could help you with debugging. These messages contain a string with the error, and should give you a hint of what is wrong. If you keep getting NO from the server, make sure that your ATH1 message is correctly formatted. There is no need to log out, simply closing the socket will make the server register you as offline. Functions to implement/edit connecttohost(): Set up a socket to the server. authenticate(): Send your login information to the server. parsemessagefromserver(): Handle data from the server. Remember to check return values from functions! Testing Test this stage by connecting to the server and authorize and then check the server web page to see if it has correctly identified you. If it has identified you, your peer should appear in the Users online table. 4
5 When the server is convinced you have successfully accomplished this stage it will record stage one done, which you can see on the same web-page. 5
6 Stage 2: Handling PINGs In short: 1. Answer PING messages sent by the server. Extend the code from stage 1 so that it answers the PING messages sent periodically from the server. The server uses these messages to ensure that the peers registered as online really are online. As soon as the server receives PONG from you in response to a PING sent by the server it will register you as having finished the second stage. After this the server will consider you offline if you fail to answer to two consecutive PING messages. Functions to implement/edit parsemessagefromserver(): Handle data from the server. Testing Check your current status on the servers web page when you think you have completed this stage. 6
7 Stage 3: Handling online messages In short: 1. Handle ONLN and OFLN messages sent from the server. 2. Keep track of other peers that are online. 3. Rewrite the PONG message. In order to keep track of which peers that are currently online each peer must maintain a list of online users. The server has a master list with all peers that are online and will send this out to a peer as soon as the peer is authorized. After this the server will only send out changes to this list when new users go online or when users go offline. Observe that your own peer will be present in the first list you receive from the server as you go online! The list will come as a series of ONLN messages, which you must handle and insert the given users in your online list. Note that there is no guarantee that the ONLN messages will appear in any special order, and there might be other messages between the messages (e.g. PING messages). When new users come online you will receive ONLN messages and when users go offline you will receive OFLN messages, and you have to update your user-list to reflect the users currently online. In order for the server to know that you have completed this stage it needs to know that you have a correct view of who are online. To achieve this you will now need to change the PONG message so it includes the numbers of users online and the user id s of all the users you think are online. The pong message will now look Where N is the number of users online and uid 1 through uid N are their user ids # and % as start, split and end token, note that this is not how it will look in reality, the real start, split and end tokens are not printable characters). Please observe that it may take a couple of PONG-messages before the server is convinced that you have finished this stage, as some user may go online or offline while you are sending this message. This will make the server falsely believe that your user list is incorrect, but this should even itself out after a few messages. 7
8 Functions to implement/edit parsemessagefromserver(): Handle data from the server. Also, you need to have a Userlist to store user information in. Take a long good look at the functions in userlist.h. Testing This stage can be tested by comparing your view of who are online is the same as the one presented on the servers web page, and that the server has registered you as having completed stage 3. 8
9 Stage 4: Messages to other peers In short: 1. Establishing connections with other peers 2. Sending and receiving MESG messages Now you will begin communicating with other peers that are online. The peers communicate by sending and receiving MESG messages containing the user id of the peer you are trying to talk to and the text of the message. After a successful authentication it s time to start listening for incoming connections. You should bind 1 a listening socket to the port stored in the variable listenport. It s best to do it at the beginning of the program so you know if the port is already in use or not, although It s fine to do it later. When you have authenticated yourself, begin listening on that socket. Functions to implement/edit sendmessage(): Send messages to peers (and the server too). parsemessagefromclient(): Handle data from other peers. Testing Test this stage by talking to other peers that are online. If you cannot initiate a connection with the other peers, you can try the peer-bot, with whom you can communicate. Managing to talk to the peer-bot is also required to convince the server that you have completed this stage. To communicate with the peer-bot you need to send a special command message to the server in the form of a regular MESG message with the text testmsg. The server has uid 0, so the command at the prompt in the client would look something like: msg 0 testmsg Once the server gets this message it will inform the peer-bot that you are ready to talk to it, and you will receive a message from the bot. Respond to the question in the message, and hopefully you will receive a message from the bot telling you that you have completed stage 4. If something is wrong, error. 1 Take a look at the socket reuse option so you can avoid the socket already in use 9
10 you will receive either an ERRO message from the server or a message from the peer-bot. 10
11 3 Messages All messages in this assignment are clear text strings, to make debugging easier. However, when you start encrypting messages, this will of course not be true anymore. Note that this means you will always have to convert numbers to strings if you want to send them in a message. The messages are all on the same form: START_TOKEN type SPLIT_TOKEN text of message END_TOKEN Where the text of the message can contain several SPLIT TOKEN to divide the message in several fields. The type field is always four bytes long, and the type is always in upper-case. The START TOKEN is defined to be ASCII character 1, SPLIT TOKEN is ASCII character 30 and END TOKEN is character 4. However, you should not need to worry about this, as they are defined in common.h and you can match them for example like this: if(char == END_TOKEN) {... } In the description below, the START TOKEN is represented SPLIT TOKEN as # and END TOKEN as %. Note that this is just for readability, as the real tokens are below ASCII character 32 and therefore not printable. The messages are: MESG This is the message type for sending messages to other peers and contains your own uid and the text of the message. It is of the of message% ERRO This is an error message the server will send to you when it has gotten an ill formatted message from you or was expecting another message. The text of the message describes what the server thinks the problem of error% ONLN Describes that the user with user id uid is online at address address and listening for connections from other peers at port port. 11
12 @ONLN#uid#address#port% OFLN The user with user id uid has gone PING This message is sent periodically by the server, and should be answered by a PONG PONG The response to the PING message. This message is special as it has two different forms, depending on how far in the assignment you are. Up to stage two it will be on the In stage 3 and onwards you will need to include the number of users, say N, and the user ids of all these users. This is to make it possible for the server to auto-correct you user list. With N users the message would look ATH1 The message you will send to the server to initiate simple authorization without encryption. Contains your user id and password in clear text, and the port you are listening for connections from other peers ATH2 The response from the server to the ATH1 message. The response is either OK, if username and password were correct, NO if they were not, and AC if the server thinks you are already Of the above messages you need to be able to send: PONG to the server in response to PING. 12
13 ATH1 to the server to initiate simple authorization. MESG to other peers to communicate with them, and to send commands to the server. And you have to receive: PING from the server. ATH2 from the server which tells you if are authorized or not. ERRO from the server, which you can use for help with debugging. ONLN and OFLN from the server, telling you when users go online and offline. MESG from other peers. 13
14 4 Code Skeleton The code skeleton for the assignment can be downloaded from the course web page. It contains two directories: common/ and skel/. p2p/ -- common/ : The code library. Don t edit these files! --- commandparser.[ch] : For parsing standard input. Take a look. --- common.h : Common #defines. Take a look. --- crypto.[ch] : Cryptography functions. Take a look. --- messagelist.[ch] : The message list modules. no peeking! --- parsehelp.[ch] : Functions for helping you parse messages. You don t have to use them. --- userlist.[ch] : The user list modules. Take a look. -- skel/ : The skeleton. ---.p2prc : Config file for the client. Edit. --- Makefile : Makefile, just edit if you add new files or if you need to compile it on another platform (not encouraged though). --- README : README file. Light information about running the client. --- client.c : The main program. Edit this. --- useraction.[ch] : More functions. Edit this one too. Figure 1: Directory structure of source code tree. To make the client program just type make (or make linux ) in the skel/ directory. This should give you a client binary. Until you edit any files 2, this will compile the program and running it will give you the pretty p2p$ prompt. So far it can only handle the quit and help commands and it s your job to implement the rest of them. 2 Hopefully it will compile after you have edited files too :-) 14
15 5 Hand-in Instructions To pass the assignment you need to provide the complete source code for the stages you are supposed to solve. It is important that you follow the steps below: 1. Make sure that the client automatically compiles into a executable file by a make from the directory skel/. 2. Create a tar ball with the complete source tree as shown in figure 1. Name the tar ball p2p-{username}.tar.gz. Example: > tar zcvf p2p-krmo5621.tar.gz p2p/ 3. Fill in the form at the back of this compendium. Do not forget to provide a path to the source code in your home directory. Also make sure that the tar ball has the right permissions, i.e. it must be readable by others. 4. Hand in the form. If you do not follow these instructions your assignment will automatically be handed back to you without corrections. 15
16 Peer to Peer Instant Messaging Name(s): Login Name: Course and Course Code: Path to code: (e.g., /home/gujo8932/p2p-gujo8932.tar.gz) Date: Signature: 1
Peer to Peer Instant Messaging
Peer to Peer Instant Messaging Assignment in Data communication I, Department of Information Technology, Uppsala University. Overview In this programming exercise you will implement a peer to peer instant
More informationP2P Programming Assignment
P2P Programming Assignment Overview This project is to implement a Peer-to-Peer (P2P) networking project similar to a simplified Napster. You will provide a centralized server to handle cataloging the
More informationCS 426 Fall Machine Problem 1. Machine Problem 1. CS 426 Compiler Construction Fall Semester 2017
CS 426 Fall 2017 1 Machine Problem 1 Machine Problem 1 CS 426 Compiler Construction Fall Semester 2017 Handed Out: September 6, 2017. Due: September 21, 2017, 5:00 p.m. The machine problems for this semester
More informationEECS 211 Lab 2. Getting Started. Getting the code. Windows. Mac/Linux
EECS 211 Lab 2 Control Statements, Functions and Structures Winter 2017 Today we are going to practice navigating in the shell and writing basic C++ code. Getting Started Let s get started by logging into
More informationProgramming Assignment III
Programming Assignment III First Due Date: (Grammar) See online schedule (submission dated midnight). Second Due Date: (Complete) See online schedule (submission dated midnight). Purpose: This project
More informationProject 1 Balanced binary
CMSC262 DS/Alg Applied Blaheta Project 1 Balanced binary Due: 7 September 2017 You saw basic binary search trees in 162, and may remember that their weakness is that in the worst case they behave like
More informationIncident Response Tools
Incident Response Tools James Madison University Dept. of Computer Science June 13, 2013 1 Introduction Being successfully attacked is inevitable. A determined hacker WILL be able to penetrate your network.
More informationCS344/444 Spring 2007 Project 1 Instant Messaging Client and Server
CS344/444 Spring 2007 Project 1 Instant Messaging Client and Server Sandeep Sarat Andreas Terzis February 19, 2007 1 Introduction For your first project you will have to write a client and a server for
More informationProgramming Project #1
CS255: Cryptography and Computer Security Winter 2008 Due: Friday, February 8th, 2008. Programming Project #1 1 Overview For the first programming assignment you will be implementing a password manager,
More informationAssignment 1: Plz Tell Me My Password
Assignment 1: Plz Tell Me My Password Part I Due: 11:59 pm, September 23, 2013 Part II Due : 11:59 pm, September 27, 2013 1 Introduction The objective of this assignment is to gain experience in: socket
More informationAuthentication CS 4720 Mobile Application Development
Authentication Mobile Application Development System Security Human: social engineering attacks Physical: steal the server itself Network: treat your server like a 2 year old Operating System: the war
More informationProgram Assignment 2
Program Assignment 2 CMSC 417 Fall 2014 September 16, 2014 1 Deadline September 30, 2014. 2 Objective In this assignment you will write the server program which will communicate using sockets with the
More informationFor Volunteers An Elvanto Guide
For Volunteers An Elvanto Guide www.elvanto.com Volunteers are what keep churches running! This guide is for volunteers who use Elvanto. If you re in charge of volunteers, why not check out our Volunteer
More informationComputer Networks CS3516 B Term, 2013
Computer Networks CS3516 B Term, 2013 Project 1 Project Assigned: October 31 Checkpoint: November 07 12:01 AM Due: November 14 12:01 AM Networks - Project 1 1 What You Will Do In This Project. The purpose
More informationNLUUG, Bunnik CloudABI: safe, testable and maintainable software for UNIX Speaker: Ed Schouten,
NLUUG, Bunnik 2015-05-28 CloudABI: safe, testable and maintainable software for UNIX Speaker: Ed Schouten, ed@nuxi.nl Programme What is wrong with UNIX? What is CloudABI? Use cases for CloudABI Links 2
More informationLesson 1A - First Java Program HELLO WORLD With DEBUGGING examples. By John B. Owen All rights reserved 2011, revised 2015
Lesson 1A - First Java Program HELLO WORLD With DEBUGGING examples By John B. Owen All rights reserved 2011, revised 2015 Table of Contents Objectives Hello World Lesson Sequence Compile Errors Lexical
More informationOperating Systems Design Exam 3 Review: Spring 2011
Operating Systems Design Exam 3 Review: Spring 2011 Paul Krzyzanowski pxk@cs.rutgers.edu 1 1. Why does an IP driver need to use ARP, the address resolution protocol? IP is a logical network. An IP address
More information6.824 Lab 2: A concurrent web proxy
Page 1 of 6 6.824 - Fall 2002 6.824 Lab 2: A concurrent web proxy Introduction In this lab assignment you will write an event-driven web proxy to learn how to build servers that support concurrency. For
More informationConfiguring Microsoft Outlook to Connect to Hosted Exchange Service
Configuring Microsoft Outlook to Connect to Hosted Exchange Service Configuring Microsoft Outlook for Hosted Exchange Service Version: 1.0 Updated on: April 27, 2011 Page 1 of 7 TABLE OF CONTENTS Configuring
More informationCN Assignment I. 1. With an example explain how cookies are used in e-commerce application to improve the performance.
CN Assignment I 1. With an example explain how cookies are used in e-commerce application to improve the performance. In an e-commerce application, when the user sends a login form to the server, the server
More informationCS143 Handout 05 Summer 2011 June 22, 2011 Programming Project 1: Lexical Analysis
CS143 Handout 05 Summer 2011 June 22, 2011 Programming Project 1: Lexical Analysis Handout written by Julie Zelenski with edits by Keith Schwarz. The Goal In the first programming project, you will get
More informationCS131 Compilers: Programming Assignment 2 Due Tuesday, April 4, 2017 at 11:59pm
CS131 Compilers: Programming Assignment 2 Due Tuesday, April 4, 2017 at 11:59pm Fu Song 1 Policy on plagiarism These are individual homework. While you may discuss the ideas and algorithms or share the
More informationTALENT Part 1 page 1 of 1
Part I Beginning WebCT Course Designer Skills. This sections covers: MyWebCT (a global WebCT user account) Differences between course designer and student accounts How to create a single student account
More informationNote: CONTENTS. 1. Outlook Express (IMAP) 2. Microsoft Outlook (IMAP) 3. Eudora (IMAP) 4. Thunderbird (IMAP) 5. Outlook Express (POP)
CONTENTS 1. Outlook Express (IMAP) 2. Microsoft Outlook (IMAP) 3. Eudora (IMAP) 4. Thunderbird (IMAP) 5. Outlook Express (POP) Note: Prior to configuring, please ensure that your ID is enabled for POP/IMAP.
More informationSecure Communications Over a Network
Secure Communications Over a Network Course: MITS:5400G Proffessor: Dr. Xiaodong Lin By: Geoff Vaughan 100309160 March 20th 2012 Abstract The purpose of this experiment is to transmit an encrypted message
More informationProgramming Assignment 3
UNIVERSITY OF NEBRASKA AT OMAHA Computer Science 3550 Section 002 Communication Networks Spring 2018 Programming Assignment 3 Introduction Having created a TCP client in programming assignment 2, it s
More informationUser Manual of Webmail Version 5
User Manual of Webmail Version 5 English Version: 1.0 Page 1 of 13 TABLE OF CONTENTS 1. ACCESS...3 1.1 Accessing to Webmail 5...3 2. COMPOSE AND SEND E-MAIL MESSAGE...4 2.1 Composing a new E-mail message...4
More informationGraph Representation and Cycle Detection
Graph Representation and Cycle Detection Introduction Problems that can be represented with a graph and an algorithm show up frequently in Computer Science. In this project, we will try two different ways
More informationASSA ABLOY. CLIQ Connect PC Application User Manual
ASSA ABLOY CLIQ Connect PC Application User Manual Table of Contents 1 INTRODUCTION... 3 2 VERSIONS... 3 2.1 CLIQ Web Manager/Remote... 3 2.2 Key Firmware... 3 2.3 Microsoft Windows... 3 3 INSTALLATION...
More informationE-Portfolio User Guide for Verifiers
Wessex Public Health Practitioner Registration Support Scheme E-Portfolio User Guide for Verifiers Contents 1. Logging in for the first time 2. Finding your practitioner 3. Changing your password 4. Changing
More informationCS155: Computer Security Spring Project #1
CS155: Computer Security Spring 2018 Project #1 Due: Part 1: Thursday, April 12-11:59pm, Parts 2 and 3: Thursday, April 19-11:59pm. The goal of this assignment is to gain hands-on experience finding vulnerabilities
More informationLab Assignment 3 for ECE374
Lab Assignment 3 for ECE374 Posted: 02/25/18 Due: 03/08/18 In this lab, we ll take a quick look at the UDP and TCP transport protocol. Whenever possible you should hand in a Wireshark screenshot that you
More informationProject #1: Tracing, System Calls, and Processes
Project #1: Tracing, System Calls, and Processes Objectives In this project, you will learn about system calls, process control and several different techniques for tracing and instrumenting process behaviors.
More informationOutlook 2013: Configure IMAP/POP/SMTP
Outlook 2013: Configure IMAP/POP/SMTP April 10, 2015 Table of Contents Introduction... 3 Email Settings... 3 IMAP... 3 POP... 3 SMTP... 3 Process Overview... 3 Anatomy of an Email Address... 4 Why is My
More informationA practicalintroduction to embedded programming. Brian Plancher 10/17/2018
A practicalintroduction to embedded programming Brian Plancher Brian_Plancher@g.harvard.edu 10/17/2018 This week s task is simple: 1. Since the boards you made 2 weeks ago are perfect and are still in
More informationAssignment pts
CSE 127: Computer Security - Fall 2014 Assignment 4 120 pts Due November 4 10:00 P.M. PDT This is a three part assignment. For the first part of the assignment, you will create an AppArmor profile for
More informationEat (we provide) link. Eater. Goal: Eater(Self) == Self()
15-251: Great Theoretical Ideas Guru: Yinmeng Zhang Assignment 12 Due: December 6, 2005 1 Reading Comprehension (0 points) Read the accompanying handout containing Ken Thompson s Turing Award Lecture,
More informationModule 6 ibgp and Basic ebgp
ISP Workshop Lab Module 6 ibgp and Basic ebgp Objective: Simulate four different interconnected ISP backbones using a combination of OSPF, internal BGP, and external BGP. Prerequisites: Module 1 Topology
More informationHow to Secure SSH with Google Two-Factor Authentication
How to Secure SSH with Google Two-Factor Authentication WELL, SINCE IT IS QUITE COMPLEX TO SET UP, WE VE DECIDED TO DEDICATE A WHOLE BLOG TO THAT PARTICULAR STEP! A few weeks ago we took a look at how
More informationFIT 100: Fluency with Information Technology
FIT 100: Fluency with Information Technology Lab 1: UW NetID, Email, Activating Student Web Pages Table of Contents: Obtain a UW Net ID (your email / web page identity):... 1 1. Setting Up An Account...
More informationPROGRAMMING ASSIGNMENTS 3 & 4 TAO
PROGRAMMING ASSIGNMENTS 3 & 4 TAO INTRODUCTION Create network programs using Socket APIs Language is not limited C, Python, Java, Your program will interact with the CSE3300 server Server is hosted at
More informationOverview. Exercise 0: Implementing a Client. Setup and Preparation
Overview This Lab assignment is similar to the previous one, in that you will be implementing a simple clientserver protocol. There are several differences, however. This time you will use the SOCK_DGRAM
More informationDER GOBBLE. Good Secure Crypto Wallet Practices. What is your wallet?
DER GOBBLE Good Secure Crypto Wallet Practices When it comes to crypto currencies and securing your money, the absolute best 99% guaranteed security for your wallets is YOU. You are the one that will expose
More informationA Tutorial on using Code::Blocks with Catalina 3.0.3
A Tutorial on using Code::Blocks with Catalina 3.0.3 BASIC CONCEPTS...2 PREREQUISITES...2 INSTALLING AND CONFIGURING CODE::BLOCKS...3 STEP 1 EXTRACT THE COMPONENTS...3 STEP 2 INSTALL CODE::BLOCKS...3 Windows
More informationModule 1 Basic Topology and Router Setup
Module 1 Basic Topology and Router Setup Objective: Create a basic physical lab with IP addressing and essential router configuration. Ensure that all routers, interfaces, cables and connections are working
More information0/41. Alice Who? Authentication Protocols. Andreas Zeller/Stephan Neuhaus. Lehrstuhl Softwaretechnik Universität des Saarlandes, Saarbrücken
0/41 Alice Who? Authentication Protocols Andreas Zeller/Stephan Neuhaus Lehrstuhl Softwaretechnik Universität des Saarlandes, Saarbrücken The Menu 1/41 Simple Authentication Protocols The Menu 1/41 Simple
More informationThe Application Layer HTTP and FTP
The Application Layer HTTP and FTP File Transfer Protocol (FTP) Allows a user to copy files to/from remote hosts Client program connects to FTP server provides a login id and password allows the user to
More informationProject 2: Part 1: RPC and Locks
Project 2: Part 1: RPC and Locks Due: 11:59PM Thursday, October 14, 2010 1 Introduction In this series of labs, you will implement a fully functional distributed file server with the Frangipani architecture
More informationWeb-CAT Guidelines. 1. Logging into Web-CAT
Contents: 1. Logging into Web-CAT 2. Submitting Projects via jgrasp a. Configuring Web-CAT b. Submitting Individual Files (Example: Activity 1) c. Submitting a Project to Web-CAT d. Submitting in Web-CAT
More informationCS 118 Project Phase 2 P2P Networking
CS 118 Project Phase 2 P2P Networking Due Monday, March 15 th at 11:59pm Boelter Hall 4428, Box D3/C4 and via Electronic Submission Overview In this phase you will extend your work from Phase 1 to create
More informationINF3190 Mandatory Assignment:
INF3190 Mandatory Assignment: Formally: This assignment must be completed individually. The submission must be approved prior to submission of the Home Exam 1. To pass the submission must meet the requirements
More informationAP Computer Science Principles: Problem Set 1
AP Computer Science Principles: Problem Set 1 Due date: Friday, September 8, 2017 Instructor: Mr. Alwin Tareen Task Overview Setting up the KeePass password manager for Windows and Mac OS. Linux users
More informationCrystal DM Bot Guide. The How-to of using your new bot.
Crystal DM Bot Guide The How-to of using your new bot. Page 1 Introduction Occasionally you may find yourself tempted to tell your friends all about your new Minecraft server, or dank new alt shop. Sometimes
More informationProtecting and Archiving usernames & passwords
Protecting and Archiving usernames & passwords Let s face it we all have too many passwords to remember. However, passwords are our first line of defense against keeping the bad guys out and appropriately
More informationYour . A setup guide. Last updated March 7, Kingsford Avenue, Glasgow G44 3EU
fuzzylime WE KNOW DESIGN WEB DESIGN AND CONTENT MANAGEMENT 19 Kingsford Avenue, Glasgow G44 3EU 0141 416 1040 hello@fuzzylime.co.uk www.fuzzylime.co.uk Your email A setup guide Last updated March 7, 2017
More informationMongoDB Security Checklist
MongoDB Security Checklist Tim Vaillancourt Sr Technical Operations Architect, Percona Speaker Name `whoami` { name: tim, lastname: vaillancourt, employer: percona, techs: [ mongodb, mysql, cassandra,
More informationConfiguring SSH Public Key Authentication
6AOSCG0060-29A January 2014 Configuration Guide Configuring SSH Public Key Authentication This guide describes how to configure and use Secure Shell (SSH) public key authentication on products running
More informationFall CSEE W4119 Computer Networks Programming Assignment 1 - Simple Online Bidding System
Fall 2012 - CSEE W4119 Computer Networks Programming Assignment 1 - Simple Online Bidding System Prof. Gil Zussman due: Wed. 10/24/2012, 23:55 EST 1 Introduction In this programming assignment, you are
More informationProgramming in C++ Prof. Partha Pratim Das Department of Computer Science and Engineering Indian Institute of Technology, Kharagpur
Programming in C++ Prof. Partha Pratim Das Department of Computer Science and Engineering Indian Institute of Technology, Kharagpur Lecture - 31 Static Members Welcome to Module 16 of Programming in C++.
More informationAdvanced Computer Architecture Lab 3 Scalability of the Gauss-Seidel Algorithm
Advanced Computer Architecture Lab 3 Scalability of the Gauss-Seidel Algorithm Andreas Sandberg 1 Introduction The purpose of this lab is to: apply what you have learned so
More informationESS Security Enhancements
ESS Security Enhancements payentry.com Employee Self Service Enhancements 1 Table of Contents INTRODUCTION 3 EXISTING EMPLOYEES 3 Existing Employee -Email Address 4 Existing Employee - Username 4 Existing
More informationSchoolBooking LDAP Integration Guide
SchoolBooking LDAP Integration Guide Before you start This guide has been written to help you configure SchoolBooking to connect to your LDAP server. Please treat this document as a reference guide, your
More informationCMSC 332 Computer Networking Web and FTP
CMSC 332 Computer Networking Web and FTP Professor Szajda CMSC 332: Computer Networks Project The first project has been posted on the website. Check the web page for the link! Due 2/2! Enter strings into
More informationCS 211 Programming Practicum Fall 2018
Due: Wednesday, 11/7/18 at 11:59 pm Infix Expression Evaluator Programming Project 5 For this lab, write a C++ program that will evaluate an infix expression. The algorithm REQUIRED for this program will
More informationOverview. Exercise 0: Implementing a Client. Setup and Preparation
Overview This Lab assignment is similar to the previous one, in that you will be implementing a simple client server protocol. There are several differences, however. This time you will use the SOCK_DGRAM
More informationCOMP 3500 Introduction to Operating Systems Project 5 Virtual Memory Manager
COMP 3500 Introduction to Operating Systems Project 5 Virtual Memory Manager Points Possible: 100 Submission via Canvas No collaboration among groups. Students in one group should NOT share any project
More informationProgramming Principles 1 (CSC131) & 2 (CSC132) Software usage guide
School of Sciences Department of Computer Science and Engineering Programming Principles 1 (CSC131) & 2 (CSC132) Software usage guide WHAT SOFTWARE AM I GOING TO NEED/USE?... 3 WHERE DO I FIND THE SOFTWARE?...
More informationEE122 Project 1. Fall Version 0.4. Part A due at 11:50pm on Monday, October 11, 2010 Part B due at 11:50pm on Wednesday, October 27, 2010
EE122 Project 1 Fall 2010 Version 0.4 Part A due at 11:50pm on Monday, October 11, 2010 Part B due at 11:50pm on Wednesday, October 27, 2010 Change History: 01 -> 02: Added clarifications to server requirements:
More informationAdvanced option settings on the command line. Set the interface and ports for the OpenVPN daemons
Advanced option settings on the command line docs.openvpn.net/command-line/advanced-option-settings-on-the-command-line Set the interface and ports for the OpenVPN daemons In the Admin UI under Server
More informationFormatting: Cleaning Up Data
Formatting: Cleaning Up Data Hello and welcome to our lesson on cleaning up data, which is one of the final ones in this Formatting Module. What we re going to be doing in this lesson is using some of
More informationCS 450 Introduction to Networking Spring 2014 Homework Assignment 1 File Transfer and Data Bandwidth Analysis Tool
CS 450 Introduction to Networking Spring 2014 Homework Assignment 1 File Transfer and Data Bandwidth Analysis Tool Due: Monday 17 February. Electronic copy due at 10:30 A.M., Optional paper copy may be
More informationLab 1 - Reliable Data Transport Protocol
Lab 1 - Reliable Data Transport Protocol Handout: March 8, 2018 Deadline: March 18 23:00, 2018 (No extension) Assignment overview: In this assignment, you will be implementing the sending and receiving
More informationWriting Code and Programming Microcontrollers
Writing Code and Programming Microcontrollers This document shows how to develop and program software into microcontrollers. It uses the example of an Atmel ATmega32U2 device and free software. The ATmega32U2
More informationFinal Programming Project
Due Thursday, Dec. 7, at 5:00 pm Logistics This assignment should be completed in groups of 3. This is not optional -- you are not allowed to complete it on your own, or in groups of any other size. I
More informationCIS 505: Software Systems
CIS 505: Software Systems Spring 2018 Assignment 2: Email servers MS1 due February 16, 2018, at 10:00pm EST MS2+3 due March 1, 2018, at 10:00pm EST 1 Overview For this assignment, you will build two simple
More informationDigital Media. Seasons Assignment. 1. Copy and open the file seasonsbegin.fla from the Read folder.
Digital Media Seasons Assignment 1. Copy and open the file seasonsbegin.fla from the Read folder. 2. Make a new layer for buttons. Create a button that the user will click to start the interaction. (Be
More informationCS Introduction to Data Structures How to Parse Arithmetic Expressions
CS3901 - Introduction to Data Structures How to Parse Arithmetic Expressions Lt Col Joel Young One of the common task required in implementing programming languages, calculators, simulation systems, and
More informationEE122 Project 1 Fall 2010
Introduction EE122 Project 1 Fall 2010 Version 0.1 Part A due at 11:50pm on Wednesday, October 6, 2010 Part B due at 11:50pm on Wednesday, October 27, 2010 Change History: The galaxy is in great distress.
More informationUKNova s Getting Connectable Guide
UKNova s Getting Connectable Guide Version 1.2 2010/03/22 1. WHAT IS "BEING CONNECTABLE" AND WHY DO I NEED IT? Being connectable means being able to give back to others it is the fundamental principle
More informationCS2112 Fall Assignment 4 Parsing and Fault Injection. Due: March 18, 2014 Overview draft due: March 14, 2014
CS2112 Fall 2014 Assignment 4 Parsing and Fault Injection Due: March 18, 2014 Overview draft due: March 14, 2014 Compilers and bug-finding systems operate on source code to produce compiled code and lists
More informationCopyright
This video looks at Claim Based/Identity Based systems using Active Directory Federation Services as an example. An example of a claim based system is where the user logs into a system like a web page
More informationCS 447 : Networks and Data Communications Programming Assignment #02 Total Points: 150
CS 447 : Networks and Data Communications Programming Assignment #02 Total Points: 150 Assigned Date : Tuesday, October 23, 2018 Due Date : Tuesday, November 06, 2018 @ 12:29:59 p.m. Overview Your second
More informationPart III Appendices 165
Part III Appendices 165 Appendix A Technical Instructions Learning Outcomes This material will help you learn how to use the software you need to do your work in this course. You won t be tested on it.
More informationAssignment 3 ITCS-6010/8010: Cloud Computing for Data Analysis
Assignment 3 ITCS-6010/8010: Cloud Computing for Data Analysis Due by 11:59:59pm on Tuesday, March 16, 2010 This assignment is based on a similar assignment developed at the University of Washington. Running
More informationQuick Web Development using JDeveloper 10g
Have you ever experienced doing something the long way and then learned about a new shortcut that saved you a lot of time and energy? I can remember this happening in chemistry, calculus and computer science
More informationSP LOCKER USER MANUAL. v1.0
SP LOCKER USER MANUAL v1.0 Table of Contents 1 Introduction to the SP Locker Security Software... 2 2 Before You Get Started... 2 3 Features... 2 4 Public and Secured Partition... 3 5 How to use SP Locker...
More informationSU 2017 May 11/16 LAB 2: Character and integer literals, number systems, character arrays manipulation, relational operator
SU 2017 May 11/16 LAB 2: Character and integer literals, number systems, character arrays manipulation, relational operator 0 Problem 0 number bases Visit the website www.cleavebooks.co.uk/scol/calnumba.htm
More informationGMU SWE 443 Software Architecture Spring Lab 2: Implicit-invocation System. Sousa Discuss Feb 23, due March 8
GMU SWE 443 Software Architecture Spring 2012 Lab 2: Implicit-invocation System Sousa Discuss Feb 23, due March 8 This lab is to be done individually. If there is something you don t understand, or if
More informationLaboratory 1: Eclipse and Karel the Robot
Math 121: Introduction to Computing Handout #2 Laboratory 1: Eclipse and Karel the Robot Your first laboratory task is to use the Eclipse IDE framework ( integrated development environment, and the d also
More informationWithout further ado, let s go over and have a look at what I ve come up with.
JIRA Integration Transcript VLL Hi, my name is Jonathan Wilson and I m the service management practitioner with NHS Digital based in the United Kingdom. NHS Digital is the provider of services to the National
More informationSetting up Outlook Express to access your boxes
Setting up Outlook Express to access your email boxes Basically there are 2 stages to this process the third only necessary if you use BT Internet as your Internet Service Provider (ISP) 1) Setting up
More informationRequest for Comments: 913 September 1984
Network Working Group Request for Comments: 913 Mark K. Lottor MIT September 1984 STATUS OF THIS MEMO This RFC suggests a proposed protocol for the ARPA-Internet community, and requests discussion and
More informationProject 1. 1 Introduction. October 4, Spec version: 0.1 Due Date: Friday, November 1st, General Instructions
Project 1 October 4, 2013 Spec version: 0.1 Due Date: Friday, November 1st, 2013 1 Introduction The sliding window protocol (SWP) is one of the most well-known algorithms in computer networking. SWP is
More informationProject 1: Scheme Pretty-Printer
Project 1: Scheme Pretty-Printer CSC 4101, Fall 2017 Due: 7 October 2017 For this programming assignment, you will implement a pretty-printer for a subset of Scheme in either C++ or Java. The code should
More informationConfiguring GNS3 for CCNA Security Exam (for Windows) Software Requirements to Run GNS3
Configuring GNS3 for CCNA Security Exam (for Windows) Software Requirements to Run GNS3 From Cisco s website, here are the minimum requirements for CCP 2.7 and CCP 2.8: The following info comes from many
More informationTELE301 Lab16 - The Secure Shell
TELE301 Lab16 - The Secure Shell Department of Telecommunications May 7, 2002 Contents 1 Introduction 2 2 OpenSSH 2 3 Replacing Telnet 2 4 Logging in without a password 2 5 SSH Agent 3 5.1 SSH Add..............................
More informationIntro to Programming. Unit 7. What is Programming? What is Programming? Intro to Programming
Intro to Programming Unit 7 Intro to Programming 1 What is Programming? 1. Programming Languages 2. Markup vs. Programming 1. Introduction 2. Print Statement 3. Strings 4. Types and Values 5. Math Externals
More informationLesson 5 Transcript: Client Connectivity
Lesson 5 Transcript: Client Connectivity Slide 1: Cover Welcome to lesson 5 of the DB2 on Campus Series. Today we are going to talk about client connectivity. My name is Raul Chong, and I'm the DB2 on
More informationMIS2502: Data Analytics MySQL and SQL Workbench. Jing Gong
MIS2502: Data Analytics MySQL and SQL Workbench Jing Gong gong@temple.edu http://community.mis.temple.edu/gong MySQL MySQL is a database management system (DBMS) Implemented as a server What is a server?
More informationCOMP 321: Introduction to Computer Systems
Assigned: 3/29/18, Due: 4/19/18 Important: This project may be done individually or in pairs. Be sure to carefully read the course policies for assignments (including the honor code policy) on the assignments
More information