5 ms·
Introducing runroot: live programming languages in your browser
- tectonic 17y agoVery nice.
- seiji 17y agorunroot is a project I've been working on in my spare time for the past year. You provision a server to hold interactive instances. Each instance has a web REPL and full ssh access. I think it has some great pedagogical use cases. Teaching a distributed revision control class? Everybody can have their own private server and practice pushing/pulling over the network. Teaching a programming topic? The instructor can jump into any student's REPL to help out.
- gcampbell 17y agoUI suggestion: for REPLs, make it clearer where the user is supposed to type. I spent some time trying to enter code after the prompts in the Erlang and Ruby REPLs before I figured out that the lower box was the input box. The upper box allows text input, but doesn't submit anything on hitting enter. Maybe make it a non-editable div rather than a textarea? Otherwise, very cool.
- seiji 17y agoThanks for the feedback. I'll look at adding something to signify what goes where. There are two schools of thought with web REPLs. Either you do everything inline like http://lotrepls.appspot.com/ http://lotrepls.appspot.com/ or you give people an individual input box like http://www.simplyscala.com/ http://www.simplyscala.com/ I'm mostly in the second camp with a big helping of "haven't thought too much about it and just wanted to get the thing working."
- colbyolson 17y agoThis is awesome, there went my workday.
- tectonic 17y agoWe can try a shared Ruby session: http://transmuscle.runroot.com/?384e8aabedad3890 http://transmuscle.runroot.com/?384e8aabedad3890 Edit: a new one http://transmuscle.runroot.com/?123d0b7cf0728555 http://transmuscle.runroot.com/?123d0b7cf0728555
- colbyolson 17y agoI think we broke that session. Can't escape out of whatever it's in. edit: At least I got off an error message for others coming late to the party session before it stopped responding. http://img.skitch.com/20100105-mgdxdtt5nqpef6qpba9s9rnkbi.jpg http://img.skitch.com/20100105-mgdxdtt5nqpef6qpba9s9rnkbi.jp...
- tectonic 17y agoSuggestions: there should be a way to color input / output by user. There should also be a way to send Control-C and Control-X. There should be a way to see who is in the REPL.
- stevejohnson 17y agoA while ago, someone tried to pitch to me the idea of an in-browser collaborative IDE which you could use to build web apps without ever leaving the browser or even setting up...well, anything, really. I didn't think it would work due to security implications, but it looks like you have solved that problem. You have what amount to project-specific VMs which can presumably run web servers. You have a secure collaboration setup. Imagine a group of people who want to implement a web app. All they have to do is buy a private server from you, which already has software to allow them to write and serve code. If you nail the IDE, then the web app development process becomes much, much closer to the "normal" method of write/compile/run. In your case, it's write/save/refresh other page. I realize that you are focusing purely on the REPL right now, but you got me thinking about it and I wanted to share. If you turned these babies into web servers too, it would be pretty awesome. You'd probably have to move to "cloud" hosting, though. Anyway, great app. I'll probably be using it. But I resent your categorization of Python and Ruby, and agree with gcampbell's UI gripe.
- seiji 17y agoThere's a lot of potential. AppJet originally tried to be an in browser platform, but it didn't really take off. They ended up improving their code editor and making EtherPad. We all know how that ended up (i.e. free etherpad for everybody). It'll be interesting to tie in the guts of EtherPad[1] and/or Bespin[2] to runroot. As far as "cloud hosting" goes, everything currently runs on EC2. Resenting my categorization is perfectly acceptable. Hate me or love me, just don't forget me. [1]: http://bitbucket.org/mattsta/etherpad-postgres/ http://bitbucket.org/mattsta/etherpad-postgres/ [2]: https://bespin.mozilla.com/ https://bespin.mozilla.com/
- rglullis 17y agoWith apologies to Edmund Burke: Those who ignore GNU tools are bound to reimplement them as a webapp. Assuming that the author had "pedagogical use cases" in mind, I'll have to ask: why not just a plain server with ssh access and screen w/ multiuser support installed? It's really hard to believe that it would take anyone more than 10 minutes to learn how to use screen to the point they can share a session remotely.
- stanleydrew 17y agoThis runs on ChromeOS...
- rglullis 17y agoI hope you are joking. SSH clients are pretty much ubiquitous. If anything, this says something against the whole "put everything on the cloud" idea.
- stanleydrew 17y agoNo I'm not joking. I'm not really sure why it seems like a joke. I agree SSH clients are ubiquitous. But ChromeOS probably will not have one. I'm not even sure you'll be able to get to a shell in ChromeOS without hacking it apart and keeping it from booting to whatever window manager runs the browser. But then you're just running a stripped down linux, which kind of defeats the purpose.
- rglullis 17y agoI understand the rationale behind ChromeOS. What I don't understand is how one can justify spending all this time to build one application that is an inferior, resource-hogging clone of a GNU tool that is probably older than him. And the only possible explanation that you could give me is "you could run this on ChromeOS"? I don't mean to be rude, but it looks like you are saying the right things, but not stopping to wonder if it makes sense or not. Is it really that much of an advantage to have this "feature"? If all you have is a ChromeOS device, you are probably not the person who would need to have an Erlang REPL. And if you are that kind of person, you'll probably get a computer that runs an actual operating system, one that actually gives you a terminal and a SSH client.