<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Home on cse124</title>
    <link>https://cseweb.ucsd.edu/classes/wi19/cse124-a/</link>
    <description>Recent content in Home on cse124</description>
    <generator>Hugo -- gohugo.io</generator>
    <language>en-us</language>
    <lastBuildDate>Thu, 07 Feb 2019 10:07:08 -0500</lastBuildDate><atom:link href="https://cseweb.ucsd.edu/classes/wi19/cse124-a/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>PA2: SurfStore</title>
      <link>https://cseweb.ucsd.edu/classes/wi19/cse124-a/projects/pa2/</link>
      <pubDate>Thu, 07 Feb 2019 10:07:08 -0500</pubDate>
      
      <guid>https://cseweb.ucsd.edu/classes/wi19/cse124-a/projects/pa2/</guid>
      <description>SurfStore In this project you are going to create a cloud-based file storage service called SurfStore. SurfStore is a networked file storage application that is based on DropBox, and lets you sync file to and from the &amp;ldquo;cloud&amp;rdquo;. You will implement the cloud service, and a client which interacts with your service via RPC.
Multiple clients can concurrently connect to the SurfStore service to access a common, shared set of files.</description>
    </item>
    
    <item>
      <title>gdb on the lab machines</title>
      <link>https://cseweb.ucsd.edu/classes/wi19/cse124-a/post/2019/01/22/gdb-on-the-lab-machines/</link>
      <pubDate>Tue, 22 Jan 2019 17:24:37 -0800</pubDate>
      
      <guid>https://cseweb.ucsd.edu/classes/wi19/cse124-a/post/2019/01/22/gdb-on-the-lab-machines/</guid>
      <description>To use the gdb debugger on the lab computers (ieng6), you need to type the following command first:
$ module unload python-3.6.2 $ gdb ... </description>
    </item>
    
    <item>
      <title>PA 1 framing and parsing tips</title>
      <link>https://cseweb.ucsd.edu/classes/wi19/cse124-a/post/2019/01/21/pa-1-framing-and-parsing-tips/</link>
      <pubDate>Mon, 21 Jan 2019 15:25:16 -0800</pubDate>
      
      <guid>https://cseweb.ucsd.edu/classes/wi19/cse124-a/post/2019/01/21/pa-1-framing-and-parsing-tips/</guid>
      <description>To get started on your web server, you&amp;rsquo;re going to need to have your server read in one (or more than one) request(s). But how to do that?
Consider a simplified version of this problem: you&amp;rsquo;ve got an unknown number of HTTP requests, each of which is variable size, separated by the four-byte delimiter &amp;lt;CR&amp;gt;&amp;lt;LF&amp;gt;&amp;lt;CR&amp;gt;&amp;lt;LF&amp;gt;. Note that in C++, these bytes are specified as &amp;quot;\r\n\r\n&amp;quot;. However, all you have is a recv() call which returns one or more bytes.</description>
    </item>
    
    <item>
      <title>Sample code for the sockets client</title>
      <link>https://cseweb.ucsd.edu/classes/wi19/cse124-a/post/2019/01/19/sample-code-for-the-sockets-client/</link>
      <pubDate>Sat, 19 Jan 2019 17:12:30 -0800</pubDate>
      
      <guid>https://cseweb.ucsd.edu/classes/wi19/cse124-a/post/2019/01/19/sample-code-for-the-sockets-client/</guid>
      <description>This is some example code we used in class covering the creation of a client socket example.
DieWithMessage.c #include &amp;lt;stdio.h&amp;gt; #include &amp;lt;stdlib.h&amp;gt; void DieWithUserMessage(const char *msg, const char *detail) { fputs(msg, stderr); fputs(&amp;quot;: &amp;quot;, stderr); fputs(detail, stderr); fputc(&#39;\n&#39;, stderr); exit(1); } void DieWithSystemMessage(const char *msg) { perror(msg); exit(1); } DieWithMessage.c CC=g++ CFLAGS=-ggdb -std=c++11 -Wall -pedantic -Wno-sign-compare all: client client: TCPClient.c DieWithMessage.c $(CC) $(CFLAGS) -o client TCPClient.c DieWithMessage.c clean: rm -rf client client.</description>
    </item>
    
    <item>
      <title>Literature Server</title>
      <link>https://cseweb.ucsd.edu/classes/wi19/cse124-a/post/2019/01/15/literature-server/</link>
      <pubDate>Tue, 15 Jan 2019 14:44:58 -0800</pubDate>
      
      <guid>https://cseweb.ucsd.edu/classes/wi19/cse124-a/post/2019/01/15/literature-server/</guid>
      <description>In Jan 16&amp;rsquo;s class, we&amp;rsquo;re going to code up a simple TCP client using TCP sockets. If you want to practice on your own, I&amp;rsquo;ve setup a literature server that serves out a piece of text. You can access this server via:
 Host: ec2-52-16-48-1.eu-west-1.compute.amazonaws.com Port: 5000  In addition to your own C/C++ client code, you can use standard UNIX utilities to access this server as well:
$ nc ec2-52-16-48-1.</description>
    </item>
    
    <item>
      <title>PA 1: Building a web server</title>
      <link>https://cseweb.ucsd.edu/classes/wi19/cse124-a/projects/pa1/</link>
      <pubDate>Sun, 13 Jan 2019 12:05:22 -0500</pubDate>
      
      <guid>https://cseweb.ucsd.edu/classes/wi19/cse124-a/projects/pa1/</guid>
      <description>Overview In this project, you are going to build a simple webserver that implements a subset of the HTTP/1.1 protocol specification called TritonHTTP, defined here.
Project details Basic web server functionality At a high level, a web server listens for connections on a socket (bound to a specific address and port on a host machine). Clients connect to this socket and use the TritonHTTP protocol to retrieve files from the server.</description>
    </item>
    
    <item>
      <title>TritonHTTP specification</title>
      <link>https://cseweb.ucsd.edu/classes/wi19/cse124-a/post/2019/01/12/tritonhttp-specification/</link>
      <pubDate>Sat, 12 Jan 2019 12:00:31 -0700</pubDate>
      
      <guid>https://cseweb.ucsd.edu/classes/wi19/cse124-a/post/2019/01/12/tritonhttp-specification/</guid>
      <description>Overview This document describes a minimal subset of the HTTP/1.1 protocol specification. For this class, please consider this spec as the definitive guide for implementing HTTP&amp;ndash;as such, we are going to call it TritonHTTP. Please do not consult other references to actual HTTP found online. Portions of this specification are courtesy of James Marshall, used with permission from the author.
Client/server protocol TritonHTTP is a client-server protocol that is layered on top of the reliable stream-oriented transport protocol TCP.</description>
    </item>
    
    <item>
      <title>Practice Set 1</title>
      <link>https://cseweb.ucsd.edu/classes/wi19/cse124-a/post/2019/01/11/practice-set-1/</link>
      <pubDate>Fri, 11 Jan 2019 09:33:36 -0800</pubDate>
      
      <guid>https://cseweb.ucsd.edu/classes/wi19/cse124-a/post/2019/01/11/practice-set-1/</guid>
      <description>Here are a few practice problems to cover week 1 of the course. The solutions will be posted at the end of week 2. This problem set is optional and will not count towards your grade.
Peterson &amp;amp; Davie Link to a PDF of the textbook
Problems: 1.3, 1.5, 1.13, 1.20, 1.22, 3.55, 3.68, 3.73
Solution A link to a sample solution</description>
    </item>
    
    <item>
      <title>Cpp Sockets Resources</title>
      <link>https://cseweb.ucsd.edu/classes/wi19/cse124-a/post/2019/01/10/cpp-sockets-resources/</link>
      <pubDate>Thu, 10 Jan 2019 11:43:38 -0800</pubDate>
      
      <guid>https://cseweb.ucsd.edu/classes/wi19/cse124-a/post/2019/01/10/cpp-sockets-resources/</guid>
      <description>If you are new to (or rusty with) C++, you can learn the fundamentals via a set of online video courses:
 Online C++ video tutorial  Beej&amp;rsquo;s guide to network programming:
 bgnet  Guide to Geek&amp;rsquo;s reference
 geek  </description>
    </item>
    
    <item>
      <title>C&#43;&#43; training</title>
      <link>https://cseweb.ucsd.edu/classes/wi19/cse124-a/post/2019/01/06/c-training/</link>
      <pubDate>Sun, 06 Jan 2019 16:05:17 -0800</pubDate>
      
      <guid>https://cseweb.ucsd.edu/classes/wi19/cse124-a/post/2019/01/06/c-training/</guid>
      <description>For the projects, we&amp;rsquo;re going to be using either C or C++. If you&amp;rsquo;re feeling a bit rusty (or haven&amp;rsquo;t been exposed to C or C++ thus far), you can take some online training via &amp;ldquo;PluralSight&amp;rdquo;.
PluralSight is an online MOOC where you can watch some videos on how to program in C++, C++ fundamentals, and C++ language features. The online courses take a few hours to complete, and come with companion code, exercises, etc.</description>
    </item>
    
    <item>
      <title>Q &amp; A and Piazza</title>
      <link>https://cseweb.ucsd.edu/classes/wi19/cse124-a/post/2019/01/06/q-a-and-piazza/</link>
      <pubDate>Sun, 06 Jan 2019 13:22:26 -0800</pubDate>
      
      <guid>https://cseweb.ucsd.edu/classes/wi19/cse124-a/post/2019/01/06/q-a-and-piazza/</guid>
      <description>Most courses at UCSD use the Piazza message board for handling Q&amp;amp;A. Piazza has chosen a business model in which is offers its message board to students and faculty for &amp;ldquo;free&amp;rdquo;, and makes its money by selling student data to 3rd party companies. In particular, the data Piazza sells is not anonymous or aggregate data, but personally identifiable data linked to individual students.
Instead of relying on this service, we&amp;rsquo;re going to use Google&amp;rsquo;s &amp;ldquo;Q&amp;amp;A&amp;rdquo; message board.</description>
    </item>
    
    <item>
      <title>Welcome</title>
      <link>https://cseweb.ucsd.edu/classes/wi19/cse124-a/post/2019/01/06/welcome/</link>
      <pubDate>Sun, 06 Jan 2019 13:08:45 -0800</pubDate>
      
      <guid>https://cseweb.ucsd.edu/classes/wi19/cse124-a/post/2019/01/06/welcome/</guid>
      <description>Welcome to CSE 124!</description>
    </item>
    
    <item>
      <title>Schedule</title>
      <link>https://cseweb.ucsd.edu/classes/wi19/cse124-a/schedule/</link>
      <pubDate>Tue, 01 Jan 2019 11:42:31 -0500</pubDate>
      
      <guid>https://cseweb.ucsd.edu/classes/wi19/cse124-a/schedule/</guid>
      <description>Topic 1 Topic: Introduction, network programming, layering, framing, parsing, addressing, UDP and TCP sockets, HTTP and the web
Reading: Van Steen 1 (Intro), 2.1 (Architectures), P&amp;amp;D 1.3 (Layering), 1.4 (sockets), 1.5 (performance), 2.3 (Framing), P&amp;amp;D 5.1 (UDP), 5.2 (TCP), Beej&amp;rsquo;s socket guide
 Mon Jan 7: Introduction and course overview  slides   Wed Jan 9: Networking fundamentals, IP addresses  slides   Fri Jan 11: Addressing, Layering, TCP  slides discussion slides   Sun Jan 13: Project 1 out Mon Jan 14: Client and server sockets programming  slides   Wed Jan 16: Sockets programming (continued)  slides   Fri Jan 18: HTTP and the web  slides discussion slides    Topic 2 Topic: Remote procedure calls and networked storage, network programming via message passing</description>
    </item>
    
    <item>
      <title>Course Syllabus</title>
      <link>https://cseweb.ucsd.edu/classes/wi19/cse124-a/courseoverview/</link>
      <pubDate>Mon, 10 Dec 2018 19:47:34 -0700</pubDate>
      
      <guid>https://cseweb.ucsd.edu/classes/wi19/cse124-a/courseoverview/</guid>
      <description>Logistics Teaching staff   Professor: George Porter
 Email: gmporter@cs.ucsd.edu Office: CSE 3104 Office hours: Tuesday 2:00-3:00pm Instructor website: http://www.cs.ucsd.edu/~gmporter    TA: Aashi Jain
 Email: a2jain@ucsd.edu Office hours: Wed 8-10am, EBU3B B215    TA: Kunal Kashilikar
 Email: kkashilk@eng.ucsd.edu Office hours: Thu 3:30-5:30 pm, location EBU3B Room B215    TA: Siddarth Ravichandran
 Email: s2ravich@eng.ucsd.edu Office hours: Tue 9am-11am, location EBU3B Room 260A    Discussion sections  964136, Fri 12:00p-12:50pm, Center 212  Required texts The texts below are available for free online.</description>
    </item>
    
  </channel>
</rss>
