--
You received this message because you are subscribed to the Google Groups "clojure-tools" group.
To unsubscribe from this group and stop receiving emails from it, send an email to clojure-tool...@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.
It was a breeze to set up Drawbridge with auth on Heroku following technomancy's example, Chortles.
https://github.com/technomancy/chortles
My intention was to use the browser REPL in a fashion similar to http://jsconsole.com for remote debugging. It wouldn't be used in a production build, but in a distributed, deployed dev environment (where Heroku shines).
Piggieback locally is cool because it gives the developer access to all parts of the system. If the browser REPL could also be set up like Drawbridge with specific routes dedicated to it, we'd have ClojureScript remote debugging. A party time zones away could test and reproduce a tricky bug, and the developer could connect directly into their session. JS Console already allows these interactions, with the proper set up (and trust in jsconsole.com). What if we could have it in Clojure, over our own servers?
Thanks,
Shane
Nor am I trying to allow multiple users of a Cljscript REPL, though that could make for some interesting pair programming.
Often in web development, someone will find an obscure bug that only occurs when you have xyz user settings on zyx browser on wvu OS with a network restricted in miscellaneous ways. Sometimes, these bugs are showstoppers, potentially causing a lot of customer support issues and/or angry Internet nerds. General debug recreates the bug by recreating the environment, but as devices proliferate (hello mobile web) and standards evolve, it can be hard to cover all the bases.
A web service that offers remote debugging could avoid attempting to recreate the bug's environment by inspecting the original host.
Jsconsole has a similar one-connection only restriction to Clojure's browser REPL server. If multiple browsers are listening, things can get wonky. That's why I start JSconsole with pseudo-random :listen ids and dynamically load the required javascript (remote.js) with a simple <input> (to match the :listen id) and script injection. I can tell someone to navigate to the debug form in their browser, input the :listen id, and hit submit. This gives me access to their browser environment with all its glory. If I exposed tests in my code, I could see what failed and try it again for myself.
Anyway, I have settled with restricting my browser-environment nREPL goodness to localhost. With a few leiningen profiles with different REPL-init commands (and some aliases to keep them memorable), I can get whatever REPL I need.
Thanks again for the great tools. The more I use them the more uses I find for them.