Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Teach web programming #79

Open
amalloy opened this issue Jun 5, 2011 · 3 comments
Open

Teach web programming #79

amalloy opened this issue Jun 5, 2011 · 3 comments

Comments

@amalloy
Copy link
Member

amalloy commented Jun 5, 2011

Web programming with Ring and Compojure is difficult for beginners to learn. We could set up some Compojure routes for serving user code, and then write problems that involve building a simple web service.

@amalloy
Copy link
Member Author

amalloy commented Jun 5, 2011

Compojure and Ring both support def-less models, so that won't be a problem. Likewise, defining the Compojure routes for user code is fairly simple. I think the part that I'll need help on is clearly defining for the user exactly what outputs we expect for given inputs, and what context their code will be run in. The Ring spec is small, but the minimal request map is still pretty bulky, so it won't be a great fit for our existing fill-in-the-blank model. We /could/ go that way because it's def-less, but it would be awkward and ugly. So I think we need something like "We'll be GETing /test.clj with the following headers, please return any <html> document"

A possible backend issue is how we sandbox requires of libraries, especially compojure. At the moment users can use whatever libraries happen to be in our classpath (minus mongodb), but it's been basically an accident and something we're planning to fix eventually. We want to expose Compojure for them for some more advanced problems, so we need to work on improving the sandbox to allow that in a clean, safe, flexible way.

I would love to work on this myself, but I'm still getting moved, back up to speed, and my computing environment configured, so it'll be at least a week before I can touch it. If anyone wants to take a stab at this, please do, and feel free to pester me with problems.

@daviddavis
Copy link
Contributor

👍

1 similar comment
@bitops
Copy link

bitops commented Dec 27, 2011

+1

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

3 participants