Chat Channels Via Kafka (with Grading Notes)

Size: px
Start display at page:

Download "Chat Channels Via Kafka (with Grading Notes)"

Transcription

1 SE424: Distributed Systems Assignment 2 Semester Due: 10 Jan 2017 Chat Channels Via Kafka (with Grading Notes) In this assignment, we ll take the work from the previous assignment on channelized chat and have it use a distributed system as a backend instead of a custom server. The distributed system that we ll use is the one that we saw in class recently: Kafka. Documentation Site You ll find a lot of help in using Kafka and its Java binding at the following links: (General Kafka documentation) (Kafka Java classes Javadocs) 1 The Communication Protocol The clients will speak a protocol built on the following message type: sendername hour:minute:second - sentence The line begins with the name of the sender followed by one space (spaces aren t allowed in the name). It s followed by a time stamp in the format hour:minute:second (ex. 12:05:07) followed by a single space, a dash (-), and then single space. After the second space comes a sentence which may contain spaces. The message ends with a new line character. The sendername is the sender name as chosen by the sender. It is not managed by Kafka and does not need to be globally unique. The timestamp is the local time at the sender s computer. Messages of the above type are prepared and sent by Kafka Producer objects for distribution to clients who have Consumer objects for the message s topic. Note that the message format is different from the previous assignment. Since Kafka will forward messages based on topics and handle all topic registration and leaving, there is no need for other message types. Depending on how you build your clients, you may not need to parse the above messages at all since Kafka will distribute the messages between the Consumer objects automatically. 2 Kafka and ZooKeeper Setup While there are classes which you can use to programmatically set up ZooKeeper servers and Kafka broker instances, we will assume that they are setup and configured using an external set of tools. We ll set up the following Kafka and ZooKeeper topology: 1

2 You ll need to create four (4) configuration scripts for the setup: 1. A Kafka Broker 0 script (KB0) ( ) 2. A Kafka Broker 1 Script (KB1) ( ) 3. A Kafka Broker 2 Script (KB2) ( ) 4. A ZooKeeper Script (ZS) ( ) You may use different IP addresses during development and testing, but for uniformity, the scripts must be submitted with the configuration parameters in the figure above 3 Working with Producers and Consumers You will take the client program that you built for the previous assignment and change it to use Kafka instead of the single server. The client s interface should remain similar, but its internals will be changed to as follows: Register When a user requests to register for a topic, the client must start a Kafka Consumer object which connects to the configured broker and starts to receive messages from the broker. Leave When a user requests to unregister for a topic, the client must stop any active Kafka Consumer objects for that topic. Send When a user requests to send a message with a given topic, the client must use a Kafka Producer object to send the message using the configured broker. 4 The Client Program The client program will remain more or less the same as from the previous assignment with some changes as a noted below. When the client program starts, it first reads from a configuration file which contains the following information: (1) The Kafka broker IP (2) The Kafka broker port It stores the Kafka broker IP and server port for later, when the user requests to connect. This will let the user point the client program to a different Kafka broker without needing to recompile the code and without the user needing to enter the Kafka broker IP and port manually. The configuration file will be read when the client program starts up and doesn t need to be read again during execution. Note: You choose how to implement the configuration file, but you must document the configuration file and how it works in the README file for the assignment. The client program lets the user perform the following operations: Login The user enters in a user name (ex. Alice) which will be used for all subsequent messages to the Kafka broker. The user name is not managed by Kafka and does not need to be checked as globally unique (though you may optionally enforce global uniqueness). Quit Close the client program. If the client currently has any open Kafka Consumer objects, consumer threads, or producer threads, they must be closed. The client then closes. 2

3 Register for a topic The user enters a topic to register for. If the user is already registered for the topic (i.e. a Kafka Consumer object for the topic already exists), the client program shows an error message. Otherwise, the client program then performs the following steps: If the topic already does not already exist in the cluster, the client creates the topic with a replication factor of 3 and one (1) partition (see the classes AdminClient, KafkaAdminClient, NewTopic for how to do this). The client starts a Kafka Consumer object for the topic from the Kafka broker given in the configuration file. It configures the Consumer to receive all subsequent messages (e.g. it will not sign up to receive messages sent in the past). The client listens on the Kafka Consumer object in a separate listening thread. Once registered for a topic, the client will begin listening for messages from the Kafka broker on a Kafka Consumer object held on a dedicated listening thread. It will show messages that it receives on the screen in the following format: ( topic ) sendername hour:minutes:seconds - sentence The receiver must add the topic name and parenthesis before the received message (which has the rest of the fields in the line). For instance, the following are some messages that might be shown: ( horses ) Alice 12:10:45 - I like horses! ( horses ) Bob 12:10:50 - So do I! ( cats ) Alice 12:11:15 - Meow ( cats ) Alice 12:11:20 - Feed me! Output Alternative As an alternative to showing the messages on the console, the tool may place all messages received from the topic in a text file in the execution directory of the tool. The text file must be called (topicname).txt (ex. horses.txt for the topic horses and cats.txt for the topic cats ). For example, in the above case, the tool would use two files with the content showed below: horses.txt cats.txt ( horses ) Alice 12:10:45 - I like horses! ( horses ) Bob 12:10:50 - So do I! ( cats ) Alice 12:11:15 - Meow ( cats ) Alice 12:11:20 - Feed me! The tool must enter each message into the text file on a separate line. If a file with the topic s name already exists in the program s execution directory when the user registers for the topic, all new messages must be appended to the existing content. Leave a topic The user enters a topic to leave. If the user isn t registered for the topic, an error message is shown to the user. Otherwise, the client program closes any open Kafka Consumer object or listening threads associated with the topic. Send a message The user selects a topic and enters a sentence to send to the configured Kafka Broker. The user does not need to be registered to the topic to send a message under it. The client converts the sentence to a message to send to the configured Kafka Broker using a Kafka Producer object. The message sent to the Kafka Broker must have the following format: 3

4 sendername hour:minutes:seconds - sentence The sendername is the name that the user provided during the login step. The time is the current hour, minute, and second at the sender s computer. The Kafka broker will be in charge of forwarding the message to all clients who are registered on the topic. Additional Client Requirements 1. The client program must offer either a GUI (Java Swing or JavaFX) or text based (command line) interface with the above operations available. 2. The user must not be required to enter raw protocol messages; the client must build the messages for the user. 3. Protocol messages must be sent by the client program in response to user requested operations using the GUI or text based interface. 4. The choice of the interface and its design is up to you. 5. You must document the user interface and how it works in the README file for the assignment. 5 Additional User Interface Requirements The client program must support the following requirements: 1. Language: The client program must be written in Java. 2. Robustness: The client program must handle all errors, not crashing due to unhandled exceptions. 3. Responsiveness: The client program must enable the user to interact with the user interface when listening or processing. This implies that network communications must not be done on the same thread as the user interface. 4

5 6 What to turn in by 10 Jan 2017 You may work in groups of up to two (2) students. There are two methods you may use for submitting your work: Moodle Github The following rules apply for each of the methods: 6.1 Moodle Submission Each member of the group must turn in a single ZIP file via Moodle which contains the following items: The configuration scripts KB0, KB1, KB2, ZS in clearly named and properly formatted configuration files. The full source code for all parts of the system. A compiled JAR of the client program runnable on any Windows 7 or 10 computer, along with any required configuration files. A file called README.pdf which has the following information: A list of the students in the group, including names and ID numbers A detailed list of which student worked on what and for approximately how many hours Instructions for using the scripts KB0, KB1, KB2, and ZS to setup the ZooKeeper and Kafka cluster. Instructions for compiling the source code for the client program Instructions for running the client program Documentation of the client configuration file 6.2 GitHub Submission The group must use the private repository provided for the assignment on GitHub. The repository must have the following properties and contents: The configuration scripts KB0, KB1, KB2, ZS in clearly named and properly formatted configuration files. The full source code for all parts of the system. A ZIP file containing the following files: A compiled JAR of the client program runnable on any Windows 7 computer, along with any required configuration files. A file called Readme.md which has the following information: A list of the students in the group, including names, GitHub user names, and ID numbers A detailed list of which student worked on what and for approximately how many hours Instructions for using the scripts KB0, KB1, KB2, and ZS to setup the ZooKeeper and Kafka cluster. 5

6 Instructions for compiling the source code for the client program Instructions for running the client program Documentation of the client configuration file A commit to the master branch with the text Final commit for submission 7 Grading The weights for the grading will be assigned as follows: Topic creation, registration, leaving: 30% Message forwarding and display: 40% Setup scripts: 15% Robustness: 15% 7.1 Penalties and Errors The following penalties will be assessed for the errors or omissions below: Grading Notes (General): Hard coding file names, IP addresses, or port numbers into the code. (-15) points Not handling quit correctly. (-15) points Missing item from required list of readme file elements. (-4) points (maximum 20 points off) Tool works only if the client and cluster servers (Kafka, ZooKeeper) are on the same computer. (-15) points Grading Notes (Client): Client doesn t allow multiple instances to be opened. (-5) points Client requires the user to enter the complete message format as well as the sentence. (-10) points Can t rejoin a topic after leaving it. (-5) points Doesn t show all received messages from the cluster for a particular topic. (-10) points When registering for a topic, doesn t create it with the correct replication parameters. (-5) points When registering for a topic, asks for all messages in the topic s history. (-5) points Grading Notes (Robustness): Unhandled exception. (-3) points each 6

7 7.2 Testing Regimen The following is the testing regimen I will use for the grading. It s worthwhile to try out the testing regimen yourself before submission. As a note, the three clients below will be run on three different computers in Rooms 815, 817, or 819 in Bet Achi. 1. Change Kafka and ZooKeeper IP addresses to something other than what s in the configuration file (will use 4 different computers). 2. Turn on the ZooKeeper server. 3. Turn on the Kafka Brokers KB0, KB1, KB2. 4. Configure client1 to work with KB0. 5. Turn on client1. 6. Send a message with topic1 7. Register for topic1 8. Send a message with topic1 9. Send a message with topic2 10. Register for topic2 11. Leave topic1 12. Send a message with topic1 13. Send a message with topic2 14. Close client1 15. Reopen client1 16. Send a message with topic1 17. Register for topic1 18. Send a message with topic1 19. Configure client2 to work with KB1 20. Turn on client2 21. Client1: Send a message with topic1 22. Client2: Send a message with topic1 23. Client2: Register for topic1 24. Client1: Send a message with topic1 25. Client1: Send a message with topic2 26. Client1: Register for topic2 27. Configure client3 to work with KB2. 7

8 28. Turn on client3 29. Client1: Send a message with topic1 30. Client2: Send a message with topic1 31. Client3: Register for topic2 32. Client1: Send a message with topic1 33. Client1: Send a message with topic2 34. Client1: Register for topic2 35. Client2: Send a message with topic2 36. Client3: Send a message with topic3 37. Client1: Leave topic2 38. Client1: Send a message with topic2 39. Close client3 40. Configure client3 to work with KB1 41. Turn on client3 42. Client3: Send a message with topic2 43. Client1: Send an illegal message (no topic, command not found) 44. Find which broker is managing topic1 and close it 45. Close any client connected to the closed broker, reconfigure the clients to use another broker, and restart. 46. Client1: Send a message with topic1 47. Client2: Send a message with topic1 48. Client3: Send a message with topic1 49. Close the servers 8

rkafka rkafka is a package created to expose functionalities provided by Apache Kafka in the R layer. Version 1.1

rkafka rkafka is a package created to expose functionalities provided by Apache Kafka in the R layer. Version 1.1 rkafka rkafka is a package created to expose functionalities provided by Apache Kafka in the R layer. Version 1.1 Wednesday 28 th June, 2017 rkafka Shruti Gupta Wednesday 28 th June, 2017 Contents 1 Introduction

More information

Sample Spark Web-App. Overview. Prerequisites

Sample Spark Web-App. Overview. Prerequisites Sample Spark Web-App Overview Follow along with these instructions using the sample Guessing Game project provided to you. This guide will walk you through setting up your workspace, compiling and running

More information

Moodle Tutorial. Tak Auyeung. April 5, 2006

Moodle Tutorial. Tak Auyeung. April 5, 2006 Moodle Tutorial Tak Auyeung April 5, 2006 1 Self Enrollment Moodle allows you to self enroll with courses. Depending on the class, you may or may not require a password. This section guides you through

More information

Using Blogs in BOLT Student Guide

Using Blogs in BOLT Student Guide Using Blogs in BOLT Student Guide Table of Contents Blog vs Journal... 2 Accessing a Blog... 2 Navigating in a Blog... 3 Using a Blog... 6 Adding a New Entry... 6 Finding Recent Entries in a Blog... 7

More information

INFSCI 1017 Implementation of Information Systems Spring 2017

INFSCI 1017 Implementation of Information Systems Spring 2017 INFSCI 1017 Implementation of Information Systems Spring 2017 Time: Thursdays 6:00 8:30 Location: Information Science Building, Room 406 Instructor: Alexander Nolte Office Hours: Monday, 1-2PM Thursdays,

More information

SIMON. Creating and Assessing Assessment Tasks. Creating an Assessment Task. Step 1

SIMON. Creating and Assessing Assessment Tasks. Creating an Assessment Task. Step 1 Creating an Assessment Task Step 1 Navigate to the subject area in your Learning Areas and select Assessment Tasks. Step 2 Select Maintain Tasks (View Tasks is for assessing the completed tasks, recording

More information

Submitting your Work using GIT

Submitting your Work using GIT Submitting your Work using GIT You will be using the git distributed source control system in order to manage and submit your assignments. Why? allows you to take snapshots of your project at safe points

More information

Programming Assignments

Programming Assignments ELEC 486/586, Summer 2017 1 Programming Assignments 1 General Information 1.1 Software Requirements Detailed specifications are typically provided for the software to be developed for each assignment problem.

More information

CSC207 Week 4. Larry Zhang

CSC207 Week 4. Larry Zhang CSC207 Week 4 Larry Zhang 1 Logistics A1 Part 1, read Arnold s emails. Follow the submission schedule. Read the Q&A session in the handout. Ask questions on the discussion board. Submit on time! Don t

More information

CS 1653: Applied Cryptography and Network Security Fall Term Project, Phase 2

CS 1653: Applied Cryptography and Network Security Fall Term Project, Phase 2 CS 1653: Applied Cryptography and Network Security Fall 2017 Term Project, Phase 2 Assigned: Tuesday, September 12 Due: Tuesday, October 3, 11:59 PM 1 Background Over the course of this semester, we will

More information

Distributed Collaboration - Assignment 1: Multi-View 1-User IM

Distributed Collaboration - Assignment 1: Multi-View 1-User IM Distributed Collaboration - Assignment 1: Multi-View 1-User IM Date Assigned:??? 1-View Target Date:??? Multi-View Submission Date:??? Objectives: Understand the use of observer pattern in user -interface

More information

GMU SWE 443 Software Architecture Spring Lab 2: Implicit-invocation System. Sousa Discuss Feb 23, due March 8

GMU 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 information

Version Control with Git ME 461 Fall 2018

Version Control with Git ME 461 Fall 2018 Version Control with Git ME 461 Fall 2018 0. Contents Introduction Definitions Repository Remote Repository Local Repository Clone Commit Branch Pushing Pulling Create a Repository Clone a Repository Commit

More information

Grading Rubric Homework 1

Grading Rubric Homework 1 Grading Rubric Homework 1 Used Git, has many commits, over time, wrote appropriate commit comments, set up Git correctly with git config Cloning repository results in a working site, no broken links, no

More information

bin/kafka-preferred-replica-election.sh --zookeeper localhost:12913/kafka --path-to-json-file topicpartitionlist.json

bin/kafka-preferred-replica-election.sh --zookeeper localhost:12913/kafka --path-to-json-file topicpartitionlist.json Replication tools 1. Preferred Replica Leader Election Tool FAQ What happens if the preferred replica is not in the ISR? How to find if all the partitions have been moved to the "preferred replica" after

More information

Interactr: an interaction diagram drawing tool

Interactr: an interaction diagram drawing tool Interactr: an interaction diagram drawing tool Software-ontwerp 2017-2018 Iteration 3 Contents 1 Introduction 2 2 General Information 2 2.1 Team Work............................... 2 2.2 Iterations................................

More information

ENCE 688R Civil Information Systems

ENCE 688R Civil Information Systems Mark Austin, Department of Civil Engineering, University of Maryland, College Park. Notes from Class Meet the Class: [ 2012 ] [ 2013 ] [ 2016 ] [ 2017 ] Projects: [ 2012 ] [ 2013 ] [ 2016 ] [ 2017 ] GOALS

More information

Fall CSEE W4119 Computer Networks Programming Assignment 1 - Simple Chat Application

Fall CSEE W4119 Computer Networks Programming Assignment 1 - Simple Chat Application Fall 2011 - CSEE W4119 Computer Networks Programming Assignment 1 - Simple Chat Application Prof. Gil Zussman due: 10/26/2011, 11 AM, EST 1 Introduction This programming assignment is to implement a simple

More information

Homework 2: Parsing and Machine Learning

Homework 2: Parsing and Machine Learning Homework 2: Parsing and Machine Learning COMS W4705_001: Natural Language Processing Prof. Kathleen McKeown, Fall 2017 Due: Saturday, October 14th, 2017, 2:00 PM This assignment will consist of tasks in

More information

The Assignment-2 Specification and Marking Criteria

The Assignment-2 Specification and Marking Criteria The Assignment- Specification and Marking Criteria Java RMI (Remote Method Invocation, reference Chapter 5 of the textbook and Week-3 lecture) enables the local invocation and remote invocation use the

More information

Real-time Data Engineering in the Cloud Exercise Guide

Real-time Data Engineering in the Cloud Exercise Guide Real-time Data Engineering in the Cloud Exercise Guide Jesse Anderson 2017 SMOKING HAND LLC ALL RIGHTS RESERVED Version 1.12.a9779239 1 Contents 1 Lab Notes 3 2 Kafka HelloWorld 6 3 Streaming ETL 8 4 Advanced

More information

Code Check TM Software Requirements Specification

Code Check TM Software Requirements Specification Code Check TM Software Requirements Specification Author: Richard McKenna Debugging Enterprises TM Based on IEEE Std 830 TM -1998 (R2009) document format Copyright 2017 Debugging Enterprises No part of

More information

Lab 1 Introduction to UNIX and C

Lab 1 Introduction to UNIX and C Name: Lab 1 Introduction to UNIX and C This first lab is meant to be an introduction to computer environments we will be using this term. You must have a Pitt username to complete this lab. NOTE: Text

More information

HW2d Project Addenda

HW2d Project Addenda HW2d Project Addenda CS 320 Note the following differences between the project description for Harvard s CS 175 class and our class: 1. The CS 175 due date is not applicable. 2. The starter code location

More information

Project 6: Assembler

Project 6: Assembler Project 6: Assembler CS 220 Start: Oct. 16; Due: Nov. 1 at 11:55 pm Background Low-level machine programs are rarely written by humans. Typically, they are generated by compilers. Yet humans can inspect

More information

Due: 9 February 2017 at 1159pm (2359, Pacific Standard Time)

Due: 9 February 2017 at 1159pm (2359, Pacific Standard Time) CSE 11 Winter 2017 Program Assignment #2 (100 points) START EARLY! Due: 9 February 2017 at 1159pm (2359, Pacific Standard Time) PROGRAM #2: DoubleArray11 READ THE ENTIRE ASSIGNMENT BEFORE STARTING In lecture,

More information

Programming Assignment 3

Programming 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 information

KTH Royal Institute of Technology SEMINAR 2-29 March Simone Stefani -

KTH Royal Institute of Technology SEMINAR 2-29 March Simone Stefani - KTH Royal Institute of Technology SEMINAR 2-29 March 2017 Simone Stefani - sstefani@kth.se WHAT IS THIS SEMINAR ABOUT Branching Merging and rebasing Git team workflows Pull requests and forks WHAT IS THIS

More information

CS 577A Team 1 DCR ARB. PicShare

CS 577A Team 1 DCR ARB. PicShare CS 577A Team 1 DCR ARB PicShare Team and Project Review (DEN) Project Evaluation Positives Resilient Agile detailed design promotes thoroughness before any code is written Development time should be reduced

More information

Continuous Integration and Deployment (CI/CD)

Continuous Integration and Deployment (CI/CD) WHITEPAPER OCT 2015 Table of contents Chapter 1. Introduction... 3 Chapter 2. Continuous Integration... 4 Chapter 3. Continuous Deployment... 6 2 Chapter 1: Introduction Apcera Support Team October 2015

More information

CIS 505: Software Systems

CIS 505: Software Systems CIS 505: Software Systems Fall 2017 Assignment 3: Chat server Due on November 3rd, 2017, at 10:00pm EDT 1 Overview For this assignment, you will implement a simple replicated chat server that uses multicast

More information

A Distributed System Case Study: Apache Kafka. High throughput messaging for diverse consumers

A Distributed System Case Study: Apache Kafka. High throughput messaging for diverse consumers A Distributed System Case Study: Apache Kafka High throughput messaging for diverse consumers As always, this is not a tutorial Some of the concepts may no longer be part of the current system or implemented

More information

Github/Git Primer. Tyler Hague

Github/Git Primer. Tyler Hague Github/Git Primer Tyler Hague Why Use Github? Github keeps all of our code up to date in one place Github tracks changes so we can see what is being worked on Github has issue tracking for keeping up with

More information

TURNING IN ASSIGNMENTS

TURNING IN ASSIGNMENTS TURNING IN ASSIGNMENTS JAVA VERSION IF YOU USE JAVA 9 YOUR CODE WILL FAIL Our grader and tester use and rely on Java 8, if you use Java 9 or a different version of java you will fail all tests resulting

More information

Project 3: Chat Application Using Nachos Networking Module *

Project 3: Chat Application Using Nachos Networking Module * OpenStax-CNX module: m30811 1 Project 3: Chat Application Using Nachos Networking Module * Duong Anh Duc This work is produced by OpenStax-CNX and licensed under the Creative Commons Attribution License

More information

Blackboard Student Guide

Blackboard Student Guide Blackboard Student Guide Blackboard is an Internet application used by many instructors to put their courses online. Typically, your instructor will let you know on the first day of class if he or she

More information

SAS 9.4 Foundation Services: Administrator s Guide

SAS 9.4 Foundation Services: Administrator s Guide SAS 9.4 Foundation Services: Administrator s Guide SAS Documentation July 18, 2017 The correct bibliographic citation for this manual is as follows: SAS Institute Inc. 2013. SAS 9.4 Foundation Services:

More information

Assessment details for All students Assessment item 1

Assessment details for All students Assessment item 1 Assessment details for All students Assessment item 1 Due Date: Weighing: 20% Thursday of Week 6 (19 th April) 11.45 pm AEST 1. Objectives The purpose of this assessment item is to assess your skills attributable

More information

Project 1 Balanced binary

Project 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 information

Distributed Version Control Git

Distributed Version Control Git Distributed Version Control Git Jakob Lykke Andersen jlandersen@imada.sdu.dk Tuesday 10 th October, 2017 Contents 1 Introduction 1 1.1 Notation......................................... 2 1.2 Getting Help......................................

More information

Helping Developers Help You. Tom Caputi

Helping Developers Help You. Tom Caputi Helping Developers Help You Tom Caputi tcaputi@datto.com The ZFS Code Base 2 The ZFS on Linux* Code Base: Statistics Source code 641 files 383950 lines of code ZFS Test suite (not including ztest) 1327

More information

Shell Project, part 3 (with Buddy System Memory Manager) ( points)

Shell Project, part 3 (with Buddy System Memory Manager) ( points) CS 453: Operating Systems Project 6 Shell Project, part 3 (with Buddy System Memory Manager) (120 140 points) Due Date -On Class Home Page 1 Introduction In the last release of the mini-shell we will provide

More information

Java SE 8 Programming

Java SE 8 Programming Oracle University Contact Us: Local: 1800 103 4775 Intl: +91 80 67863102 Java SE 8 Programming Duration: 5 Days What you will learn This Java SE 8 Programming training covers the core language features

More information

Introduction to Git and GitHub for Writers Workbook February 23, 2019 Peter Gruenbaum

Introduction to Git and GitHub for Writers Workbook February 23, 2019 Peter Gruenbaum Introduction to Git and GitHub for Writers Workbook February 23, 2019 Peter Gruenbaum Table of Contents Preparation... 3 Exercise 1: Create a repository. Use the command line.... 4 Create a repository...

More information

ITI Introduction to Computing II Winter 2018

ITI Introduction to Computing II Winter 2018 ITI 1121. Introduction to Computing II Winter 2018 Assignment 1 (Last modified on 27 janvier 2018) Deadline: February 2, 11:30 pm [ PDF ] Learning objectives Applying basic object oriented programming

More information

The Luxembourg BabelNet Workshop

The Luxembourg BabelNet Workshop The Luxembourg BabelNet Workshop 2 March 2016: Session 2 Tech session Downloading and installing BabelNet The BabelNet API Claudio Delli Bovi About me Claudio Delli Bovi dellibovi@di.uniroma1.it bn:17381128n

More information

Project 2 - A Simple Chat Program

Project 2 - A Simple Chat Program Project 2 - A Simple Chat Program Minimum Effort Due: (Part 1) 2/11/2007 (Sunday) Complete Project Due: (Part 2) 2/23/2007 (Friday) Late Project Due: (Last Chance) 2/24/2007 (Saturday) Overview In this

More information

be able to read, understand, and modify a program written by someone else utilize the Java Swing classes to implement a GUI

be able to read, understand, and modify a program written by someone else utilize the Java Swing classes to implement a GUI Homework 5, CS 2119 B-term 2015 Completing the GUI for a Student Database Due: Thursday, December 10 at 5pm Outcomes After successfully completing this assignment, you will be able to read, understand,

More information

Bitnami Kafka for Huawei Enterprise Cloud

Bitnami Kafka for Huawei Enterprise Cloud Bitnami Kafka for Huawei Enterprise Cloud Description Apache Kafka is publish-subscribe messaging rethought as a distributed commit log. How to start or stop the services? Each Bitnami stack includes a

More information

CS 118 Project Phase 2 P2P Networking

CS 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 information

OpenMP Example. $ ssh # You might have to type yes if this is the first time you log on

OpenMP Example. $ ssh # You might have to type yes if this is the first time you log on OpenMP Example Day 1, afternoon session 1: We examine a serial and parallel implementation of a code solving an N-body problem with a star, a planet and many small particles near the planet s radius. The

More information

Chapter 4 The Companion Website A Unique Online Study Resource 4.1 Locating Companion Web sites

Chapter 4 The Companion Website A Unique Online Study Resource 4.1 Locating Companion Web sites Chapter 4 The Companion Website A Unique Online Study Resource As a student, you are no doubt familiar with the various supplements produced in conjunction with your textbooks. From videotapes to workbooks,

More information

Streaming & Apache Storm

Streaming & Apache Storm Streaming & Apache Storm Recommended Text: Storm Applied Sean T. Allen, Matthew Jankowski, Peter Pathirana Manning 2010 VMware Inc. All rights reserved Big Data! Volume! Velocity Data flowing into the

More information

Voltha Architecture in a clustered HA configuration. Sergio Slobodrian, Ciena CORD Build Wed, November 7 th, 2017

Voltha Architecture in a clustered HA configuration. Sergio Slobodrian, Ciena CORD Build Wed, November 7 th, 2017 Voltha Architecture in a clustered HA configuration Sergio Slobodrian, Ciena CORD Build Wed, November 7 th, 2017 Abstract This talk will dive in on VOLTHA s clustered high availability architecture including

More information

CSSE2002/7023 The University of Queensland

CSSE2002/7023 The University of Queensland CSSE2002 / CSSE7023 Semester 1, 2016 Assignment 1 Goal: The goal of this assignment is to gain practical experience with data abstraction, unit testing and using the Java class libraries (the Java 8 SE

More information

Installing and configuring Apache Kafka

Installing and configuring Apache Kafka 3 Installing and configuring Date of Publish: 2018-08-13 http://docs.hortonworks.com Contents Installing Kafka...3 Prerequisites... 3 Installing Kafka Using Ambari... 3... 9 Preparing the Environment...9

More information

Blackboard Student Guide

Blackboard Student Guide Blackboard Student Guide Blackboard is an Internet application used by many instructors to put their courses online. Typically, your instructor will let you know on the first day of class if he or she

More information

Section 1: Tools. Contents CS162. January 19, Make More details about Make Git Commands to know... 3

Section 1: Tools. Contents CS162. January 19, Make More details about Make Git Commands to know... 3 CS162 January 19, 2017 Contents 1 Make 2 1.1 More details about Make.................................... 2 2 Git 3 2.1 Commands to know....................................... 3 3 GDB: The GNU Debugger

More information

Student Guide to Blackboard

Student Guide to Blackboard Student Guide to Blackboard Blackboard is an Internet application used by many instructors to put their courses online. Typically, your instructor will let you know on the first day of class if he or she

More information

Introduction to Apache Kafka

Introduction to Apache Kafka Introduction to Apache Kafka Chris Curtin Head of Technical Research Atlanta Java Users Group March 2013 About Me 20+ years in technology Head of Technical Research at Silverpop (12 + years at Silverpop)

More information

VMware vsphere Big Data Extensions Administrator's and User's Guide

VMware vsphere Big Data Extensions Administrator's and User's Guide VMware vsphere Big Data Extensions Administrator's and User's Guide vsphere Big Data Extensions 1.1 This document supports the version of each product listed and supports all subsequent versions until

More information

Overview of BC Learning Network SMS2 Introduction

Overview of BC Learning Network SMS2 Introduction Overview of BC Learning Network SMS2 Introduction This guide is designed to be a cumulative overview of the SMS2 web application. SMS2 is a student management system which integrates with Moodle, a learning

More information

Web-CAT Guidelines. 1. Logging into Web-CAT

Web-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 information

Continuous Integration (CI) with Jenkins

Continuous Integration (CI) with Jenkins TDDC88 Lab 5 Continuous Integration (CI) with Jenkins This lab will give you some handson experience in using continuous integration tools to automate the integration periodically and/or when members of

More information

Moodle 2.2 Student User Guide Accessing & Saving Files

Moodle 2.2 Student User Guide Accessing & Saving Files Moodle 2.2 Student User Guide Accessing & Saving Files Using the Course Outline The Course Outline can be in Topic format or in Week format, depending on how your instructor sets up their course. These

More information

Version Control. Second level Third level Fourth level Fifth level. - Software Development Project. January 17, 2018

Version Control. Second level Third level Fourth level Fifth level. - Software Development Project. January 17, 2018 Version Control Click to edit Master EECS text 2311 styles - Software Development Project Second level Third level Fourth level Fifth level January 17, 2018 1 But first, Screen Readers The software you

More information

COP 5725 Fall Hospital System Database and Data Interface. Term Project

COP 5725 Fall Hospital System Database and Data Interface. Term Project COP 5725 Fall 2016 Hospital System Database and Data Interface Term Project Due date: Nov. 3, 2016 (THU) Database The database contains most of the information used by the web application. A database is

More information

Shell Project Part 1 (140 points)

Shell Project Part 1 (140 points) CS 453: Operating Systems Project 1 Shell Project Part 1 (140 points) 1 Setup All the programming assignments for Linux will be graded on the onyx cluster(onyx.boisestate.edu). Please test your programs

More information

SpeechClass User Guide for Students A Speaker s Guidebook, Fourth Edition

SpeechClass User Guide for Students A Speaker s Guidebook, Fourth Edition SpeechClass User Guide for Students A Speaker s Guidebook, Fourth Edition Getting Started with SpeechClass for A Speaker s Guidebook, Fourth Edition Table of Contents Overview... 1 Getting Help... 1 System

More information

Enable Spark SQL on NoSQL Hbase tables with HSpark IBM Code Tech Talk. February 13, 2018

Enable Spark SQL on NoSQL Hbase tables with HSpark IBM Code Tech Talk. February 13, 2018 Enable Spark SQL on NoSQL Hbase tables with HSpark IBM Code Tech Talk February 13, 2018 https://developer.ibm.com/code/techtalks/enable-spark-sql-onnosql-hbase-tables-with-hspark-2/ >> MARC-ARTHUR PIERRE

More information

Getting the files for the first time...2. Making Changes, Commiting them and Pull Requests:...5. Update your repository from the upstream master...

Getting the files for the first time...2. Making Changes, Commiting them and Pull Requests:...5. Update your repository from the upstream master... Table of Contents Getting the files for the first time...2 Making Changes, Commiting them and Pull Requests:...5 Update your repository from the upstream master...8 Making a new branch (for leads, do this

More information

Server Component of the Chat Room Lab

Server Component of the Chat Room Lab Chat Room Server Dr. Tom Hicks - Trinity University Page 1 of 41 Server Component of the Chat Room Lab This lab is designed to show students how they may can do socket programming in a step by step process

More information

CSC290 Communication Skills for Computer Scientists

CSC290 Communication Skills for Computer Scientists CSC290 Communication Skills for Computer Scientists Lisa Zhang Lecture 6; Feb 11, 2019 Announcements I Code Commit Due Sunday 9pm I You don t have to finish the entire game by this weekend, just one commit!

More information

typo3_forum Release Mittwald CM Service :02

typo3_forum Release Mittwald CM Service :02 typo3_forum Release 1.0.0 Mittwald CM Service 2017-06-01 07:02 Contents 1 Introduction 1 1.1 What does it do?............................................. 1 2 Configuration 3 2.1 Template.................................................

More information

ImageNow Interact for Microsoft Office Installation and Setup Guide

ImageNow Interact for Microsoft Office Installation and Setup Guide ImageNow Interact for Microsoft Office Installation and Setup Guide Version: 6.6.x Written by: Product Documentation, R&D Date: February 2011 ImageNow and CaptureNow are registered trademarks of Perceptive

More information

Assignment Manager. Change Edit Mode to On if it is not already by clicking on the option at the top right of the window.

Assignment Manager. Change Edit Mode to On if it is not already by clicking on the option at the top right of the window. Assignment Manager Blackboard has a tool called the Assignment Manager that facilitates file submissions from students. The Assignment Manager feature can be used in any content area (e.g. Course Information,

More information

CSE 160: Introduction to Parallel Computation

CSE 160: Introduction to Parallel Computation CSE 160: Introduction to Parallel Computation Discussion Section SVN Tutorial Based primarily on material provided by Ingolf Krueger Contributions made by Jing Zheng, Yashodhan Karandikar, and Scott B.

More information

CS279 Course Overview. Joe Hoffert Distributed Real-time Embedded (DRE) Group Institute for Software Integrated Systems Vanderbilt University

CS279 Course Overview. Joe Hoffert Distributed Real-time Embedded (DRE) Group Institute for Software Integrated Systems Vanderbilt University CS279 Course Overview Joe Hoffert Distributed Real-time Embedded (DRE) Group Institute for Software Integrated Systems Vanderbilt University What is CS279 About? This class is about picking an interesting

More information

Standard Edition (SE) application development Enterprise Edition (EE) enterprise development Micro Edition (ME) Internet of Things (IoT) development

Standard Edition (SE) application development Enterprise Edition (EE) enterprise development Micro Edition (ME) Internet of Things (IoT) development Contents 1. Develop your project... 1 1.1. Install the latest version of the Oracle Java SE JDK... 1 1.2. Install the latest documentation for this version of the Oracle Java SE JDK... 3 1.3. Install the

More information

Programming Assignment 1

Programming Assignment 1 CMSC 417 Computer Networks Spring 2017 Programming Assignment 1 Assigned: February 3 Due: February 10, 11:59:59 PM. 1 Description In this assignment, you will write a UDP client and server to run a simplified

More information

Packaging and Deploying Java Based Solutions to WebSphere Message Broker V7

Packaging and Deploying Java Based Solutions to WebSphere Message Broker V7 IBM Software Group Packaging and Deploying Java Based Solutions to WebSphere Message Broker V7 Jeff Lowrey (jlowrey@us.ibm.com) WebSphere Message Broker L2 Support 15 September 2010 WebSphere Support Technical

More information

Scheduling a Blackboard Collaborate Web Conferencing Session in a Blackboard course

Scheduling a Blackboard Collaborate Web Conferencing Session in a Blackboard course Scheduling a Blackboard Collaborate Web Conferencing Session in a Blackboard course The Building Block 4.1.2 enables Blackboard Learn 9.1 customers to easily and seamlessly integrate a Blackboard Collaborate

More information

CSC209. Software Tools and Systems Programming. https://mcs.utm.utoronto.ca/~209

CSC209. Software Tools and Systems Programming. https://mcs.utm.utoronto.ca/~209 CSC209 Software Tools and Systems Programming https://mcs.utm.utoronto.ca/~209 What is this Course About? Software Tools Using them Building them Systems Programming Quirks of C The file system System

More information

Programming Assignment 0

Programming Assignment 0 CMSC 17 Computer Networks Fall 017 Programming Assignment 0 Assigned: August 9 Due: September 7, 11:59:59 PM. 1 Description In this assignment, you will write both a TCP client and server. The client has

More information

ZedBoard Tutorial. EEL 4720/5721 Reconfigurable Computing

ZedBoard Tutorial. EEL 4720/5721 Reconfigurable Computing Introduction: In this lab, you will be learning how to create a custom peripheral in the programmable logic on the ZedBoard and how to communicate with that peripheral from software running on the ARM

More information

JavaScript Fundamentals_

JavaScript Fundamentals_ JavaScript Fundamentals_ HackerYou Course Syllabus CLASS 1 Intro to JavaScript Welcome to JavaScript Fundamentals! Today we ll go over what programming languages are, JavaScript syntax, variables, and

More information

Address book. Presenting the Java assignment about an Address Book v

Address book. Presenting the Java assignment about an Address Book v Address book Presenting the Java assignment about an Address Book v.2-2018 Description Make an address book Text interface (command line) Stores contacts between runs Topics and skills covered error handling

More information

CS 356, Fall 2018 Data Lab (Part 1): Manipulating Bits Due: Wednesday, Sep. 5, 11:59PM

CS 356, Fall 2018 Data Lab (Part 1): Manipulating Bits Due: Wednesday, Sep. 5, 11:59PM CS 356, Fall 2018 Data Lab (Part 1): Manipulating Bits Due: Wednesday, Sep. 5, 11:59PM 1 Introduction The purpose of this assignment is to become more familiar with bit-level representations of integers

More information

Revision Control. How can 4. Slides #4 CMPT 276 Dr. B. Fraser. Local Topology Simplified. Git Basics. Revision Control:

Revision Control. How can 4. Slides #4 CMPT 276 Dr. B. Fraser. Local Topology Simplified. Git Basics. Revision Control: How can 4 (or 4000) developers work on a product at once? Revision Control Revision Control Revision Control: Also called version control, source control, software configuration management. Motivation:

More information

StorageTapper. Real-time MySQL Change Data Uber. Ovais Tariq, Shriniket Kale & Yevgeniy Firsov. October 03, 2017

StorageTapper. Real-time MySQL Change Data Uber. Ovais Tariq, Shriniket Kale & Yevgeniy Firsov. October 03, 2017 StorageTapper Real-time MySQL Change Data Streaming @ Uber Ovais Tariq, Shriniket Kale & Yevgeniy Firsov October 03, 2017 Overview What we will cover today Background & Motivation High Level Features System

More information

Rotating Carousel: Highlighted OIT services and news will be listed here. Menu Bar: The menu bar has links to several key areas of the portal:

Rotating Carousel: Highlighted OIT services and news will be listed here. Menu Bar: The menu bar has links to several key areas of the portal: OIT Support and Information Portal Overview From our portal you can view information about SLCC technology services as well as request assistance from the Information Technology Staff. The simplest way

More information

WA2031 WebSphere Application Server 8.0 Administration on Windows. Student Labs. Web Age Solutions Inc. Copyright 2012 Web Age Solutions Inc.

WA2031 WebSphere Application Server 8.0 Administration on Windows. Student Labs. Web Age Solutions Inc. Copyright 2012 Web Age Solutions Inc. WA2031 WebSphere Application Server 8.0 Administration on Windows Student Labs Web Age Solutions Inc. Copyright 2012 Web Age Solutions Inc. 1 Table of Contents Directory Paths Used in Labs...3 Lab Notes...4

More information

CS314 Software Engineering Configuration Management

CS314 Software Engineering Configuration Management CS314 Software Engineering Configuration Management Dave Matthews Configuration Management Management of an evolving system in a controlled way. Version control tracks component changes as they happen.

More information

CS 240 Fall Mike Lam, Professor. Just-for-fun survey:

CS 240 Fall Mike Lam, Professor. Just-for-fun survey: CS 240 Fall 2014 Mike Lam, Professor Just-for-fun survey: http://strawpoll.me/2421207 Today Course overview Course policies Python Motivation Computers are digital Data is stored in binary format (1's

More information

Assignments 3 & 4. COMP248/Winter Assignment 3 & 4 Page 1 of 7

Assignments 3 & 4. COMP248/Winter Assignment 3 & 4 Page 1 of 7 Concordia University Comp 248 Winter 2016 Introduction to Programming Combined Assignments 3 & 4 - Due by 11:59 PM Sunday March 20, 2016 Assignments 3 & 4 Purpose: The purpose of these assignments is to

More information

CS 4218 Software Testing and Debugging Ack: Tan Shin Hwei for project description formulation

CS 4218 Software Testing and Debugging Ack: Tan Shin Hwei for project description formulation CS 4218 Software Testing and Debugging Ack: Tan Shin Hwei for project description formulation The Project CS 4218 covers the concepts and practices of software testing and debugging. An important portion

More information

Project 8: Virtual Machine Translator II

Project 8: Virtual Machine Translator II Project 8: Virtual Machine Translator II CS 220 Start: Nov. 18; Due: Dec. 8 at 11:55 pm Background We continue building the VM Translator a program that translates a program written in the VM language

More information

CS 398 ACC Streaming. Prof. Robert J. Brunner. Ben Congdon Tyler Kim

CS 398 ACC Streaming. Prof. Robert J. Brunner. Ben Congdon Tyler Kim CS 398 ACC Streaming Prof. Robert J. Brunner Ben Congdon Tyler Kim MP3 How s it going? Final Autograder run: - Tonight ~9pm - Tomorrow ~3pm Due tomorrow at 11:59 pm. Latest Commit to the repo at the time

More information

CS122 Lecture 1 Winter Term,

CS122 Lecture 1 Winter Term, CS122 Lecture 1 Winter Term, 2014-2015 2 Welcome! How do relational databases work? Provide a hands-on opportunity to explore this topic This is a project course: A sequence of programming assignments

More information

COMP90015: Distributed Systems Assignment 1 Multi-threaded Dictionary Server (15 marks)

COMP90015: Distributed Systems Assignment 1 Multi-threaded Dictionary Server (15 marks) COMP90015: Distributed Systems Assignment 1 Multi-threaded Dictionary Server (15 marks) Problem Description Using a client-server architecture, design and implement a multi-threaded server that allows

More information