Archive for May, 2009
Homework for Week 6, 7, 8, and 9
Thursday, May 14th, 2009For 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, 2009Here are your slides for week 6.
Yay! Slides!
Week 5 Homework
Wednesday, May 6th, 20092 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.