Snotty is an attempt to make coding social. SNoTTY = Socially Networked TTY (teletype) Snotty, is a web app. Once installed on a server, (in this case a Linode instance), it lets users with accounts on that server log in and work on a real terminal through the browser. No gnome-terminal, putty, xterm or any other kind of terminal required. Snotty suffices. That itself is a reason enough to be snotty ;–).
Snotty has two main features: – Snotty lets you log into your server through your browser. Web-browsers are ubiquitous. Terminal software is not. – Lets you share your terminal with others. There’s a surprise in here. Check out Snotty instructions or better yet, play with Snotty for more details.
Snotty is also available at http://snotty.slowpoison.net
I’d like to include a brief overview of how this works first. Here’s the flow, using an example – Coders from organization WeDigNode work on their corp servers. They mostly work remotely. So, they miss the interaction with other coders. Also, they use a variety of computers depending upon where they are. Sometimes their favorite device lacks support for a terminal software. They are forced to use a different device. Enter Snotty. Snotty lets them log in to their servers using a browser. And gives them the terminal environment they love. Better yet, it lets them share terminals for pair-programming and other wonderful stuff.
Some useful info: A Snotty demo user already exists. User: nko1 Pass: nko1
Here’s how to use it: * Go to http://slowpoison.nko2.nodeknockout.com/ or http://snotty.slowpoison.net * Click on “New Terminal” to start a new terminal. * You’ll see the familiar Linux prompt. Type nko1 at the login prompt. And type nko1 as password to login. * Once you are in the terminal, you can run Linux commands. This is a true Linux terminal – it is backed by a real PTS on the server. * Try commands like ifconfig, less /var/log/syslog, date, AND top (why not) * Tab completion works! * Sadly, arrow-key command navigation and other ncurses based stuff (vim) doesn’t work right now… though I wanted to make it work.
Now your terminal is shared.
Now turn on another computer. Also, keep your previous computer alive. (Another browser window will work too, but it won’t be able to show the coolest part.)
Now go back to the first terminal. Type and play around. The shared terminal will display the same contents as the original terminal.
What’s social coding without some eye to eye contact! They say, you can tell by your peer coder’s face how many closures he/she can write in a single program.
The following node modules were used: – express – socket.io – opentok
The following libraries were used: Termlib – http://www.masswerk.at/termlib/
The following web-service APIs were used: Tokbox Opentok API
Voting is now closed.










(11)
therazorbladeI acknowledge that the terminal doesn’t fully work. This happened solely due to lack of time. It was/is my intent to complete the functionality. After all, what’s a terminal without vim and other ncurses apps.
Thanks for the feedback!
therazorbladeAdded another utility star with the hope you will continue to work on this.
chrismatthieu
AnkurBulsaraVery cool concept. A good way to work with your devops person without having access to a shared SSH screen session. A big concern is around security. Basically, you’re asking people to install Snooty on their machines which creates a backdoor via a web browser. Probably not suited for production use, but certainly useful for development servers and servers walled-off from the outside (e.g. inside a private network, connected via VPN). | |||
I love the idea, but the terminal wasn’t handling escape sequences :( | |||
Yes, didn’t have time to build a complete terminal. Thanks for the review.
ryanspoonI had the same problems mentioned by others regarding inputting and commands, but you have a great prototype here. | |||
To get super meta I was writing/running node code from a terminal run by node. Awesome. | |||
jedschmidt+1: a cool idea. -1: (1) own terminal should probably handle basic actions like backspace, copy/paste, up/down, etc. (2) “watched” terminal input is buggy, would not work past first command. wasn’t able to test video, unfortunately. | |||
joehitchensBackspace didn’t do right thing when logging in. No other terms shared by others to view. Sharing my term didn’t seem to make it appear in the list of shared terms. | |||
It didn’t seem to work for me. I could open a terminal, typed ls, and nothing happened. I’m not sure the goal of this – seems like a huge security risk, but cool idea. | |||
Wow, nicely done. I wish it was a bit further along to be usable. Being able to run the full range of terminal applications is critical, as well as set fonts and colors. It is still very buggy but it does work.