Archive for May, 2009

week N slides

Wednesday, May 27th, 2009

Week-6.pdf

Homework for Week 6, 7, 8, and 9

Thursday, May 14th, 2009

For week 6, 7, 8, and 9, everyone should work on their approved projects. Each week (Friday night by midnight) please email Ryan and I with either a repository where we can find your project or a zip/gem of your project.

We would also like you to write a little about what you accomplished each week, along with something new that you learned while working on your project.

We will be grading you on your productivity (how much you’ve accomplished during the week), tests, code cleanliness, and the ever illusive goal of doing the simplest thing possible to get the job done.

Slides for week 6

Wednesday, May 13th, 2009

Here are your slides for week 6.

Yay! Slides!

Week 5 Homework

Wednesday, May 6th, 2009

2 HTTP Servers (really basic HTTP 0.9/GET only):

  • gserver for thread spawning per connection
  • tcpserver w/ prespawned thread pool

requirements:

  • craft your own request / response objects
  • servelets of your own design. start with time of the day app.
  • static files from the filesystem.
  • html files served plain
  • html.erb files should render via erb.
  • no caching, no clever.

Bare minimum HTTP protocol:

  • request:

GET /index.html HTTP/1.0 CRLF
CRLF

  • response:

HTTP/1.1 200 OK CRLF
Date: Thu, 07 May 2009 01:06:01 GMT CRLF
Last-Modified: Mon, 19 Jan 2009 23:02:19 GMT CRLF
Content-Length: 3750 CRLF
Content-Type: text/html CRLF
CRLF
...content...

  • other responses are:
  • 304 redirected
  • 404 missing
  • 500 app error

2 Chat Servers:

drb-based centralized chat server & client

  • port 31337
  • multiple users, nick
  • multiple channels
  • join/leave
  • no protocol otherwise
  • client does no authentication, just connects.
  • server announces connection, etc.
  • protocol is objects, not text.

multicast plaintext chat server/client (distributed `wall`)

  • port 7387
  • broadcast text to others.
  • print all text you see.
  • zero protocol

General Requirements:

  • must be TDD. start with direct objects, no network.
  • check your manifest before you package or I’ll dock you w/o mercy.

Week 5 Slides

Wednesday, May 6th, 2009

week-5.pdf