Gate One Brings Text-mode Surfing To the Web, Quake-Style
Riskable writes "As a follow-up to my previous Slashdot story, Gate One is now out of beta. Packages can be downloaded here. There's also a live demo: press the ESC key on this page to have a terminal running lynx drop into view, Quake-style! I've also posted a video overview and the documentation can be found here. Some pertinent changes since the beta: Added the ability display images inline within terminals, key-based SSH authentication, a WebSockets authentication API (for secure embedding), dramatically improved terminal emulation, an overhauled bookmark manager, support for international keyboard layouts, and a web-based log viewer that lets you export logs to self-contained HTML playback files."
"Some web proxies do not work properly with Web sockets"
AccountKiller
Pressing ESC does nothing in Chrome or Firefox, and produces a not supported error in IE9.
LOL, that'll teach me to use Rackspace's cheap servers. Setting up new ones now with more memory... Should start working again in a bit.
-Riskable
"Those who choose proprietary software will pay for their decision!"
As this looks like advertishment to me, I will post about my own UNIX web terminal emulator. Its C, executable only 100kb for the executable with everything contained, and many of the goodies from GateOne (multiple sessions, session attached to user, not browser window...) It also even has colaborative terminal, where two users can attach to the same terminal. All AGPLv3. https://github.com/davidmoreno/onion/tree/master/examples/oterm
So it does not require any plugins, but is a plugin?
I think they just meant to say the code is designed in a modular fashion, so you don't have to load it all at once.
I'm the author of ajaxterm which was one of the first web based terminal and is still quite popular even if i dont maintain it anymore. I was not aware of this project, i find GateOne impressive maybe it's time to ditch rxvt :)
Antony lesuisse
Not at all contradictory. It does not require the use of browser plugins, but the Gate One application supports its own plugins for customization.
If by "slashvertisement" you mean "submission by a very long term (5 digit UID) slashdot regular about an open source project he created that many slashdotters are interested in", then yes, "Timmy" is getting pretty heavy on those.
To answer your question: Gate One comes with the SSH plugin pre-installed and enabled. So it's ready-to-go as an SSH client "out of the box" as it were.
As for the plugin architecture, it's not as complicated as it sounds. There's a "plugins" directory. In that directory there's individual plugins such as "ssh" (which is its own directory): /opt/gateone/plugins/ssh
When you execute gateone.py it will scan the plugins directory for plugins and load them accordingly. Plugins can be written in any combination of Python, JavaScript, and CSS (yes, in theory you could make a CSS-only plugin). As an example, here's the layout of the SSH plugin directory:
root@portarisk:/opt/gateone/plugins # ls -lR ssh
ssh:
total 48
drwxr-xr-x 2 root root 4096 2012-02-26 12:29 scripts
-rw-rw-r-- 1 root root 36473 2012-02-09 12:24 ssh.py
drwxr-xr-x 2 root root 4096 2012-02-21 09:12 static
drwxr-xr-x 2 root root 4096 2012-02-07 15:25 templates
ssh/scripts:
total 60
-rw-rw-r-- 1 root root 5708 2012-02-13 10:36 logo.png
-rwxr-xr-x 1 root root 30576 2012-02-26 12:29 ssh_connect.py
ssh/static:
total 56
-rw-r--r-- 1 root root 54852 2012-02-21 09:12 ssh.js
ssh/templates:
total 8
-rw-rw-r-- 1 root root 5052 2012-02-07 15:23 ssh.css
So in this example the SSH plugin is taking advantage of all three supported plugin types simultaneously: Python, JavaScript, and CSS. Each type will be loaded appropriately... Python files will be imported and their 'hooks' will be attached accordingly, JavaScript files will be automatically added to whatever page is loading Gate One, and CSS files will be automatically added to the HEAD tag of the page. It's all seamless and happens automatically by simply placing the files in the correct locations.
That 'scripts' directory is just somewhere to store that ssh_connect.py script which is what gets called when Gate One spawns a new terminal (by default). Just think of the 'scripts' directory as an arbitrary place to store a non-plugin file or two (I could've just placed them inside the 'ssh' directory but that wouldn't be very organized =).
Cool fact: Gate One loads JS and CSS files over the WebSocket.
-Riskable
"Those who choose proprietary software will pay for their decision!"
that the terminal drops down. that's the quake style reference, that you press esc and tada you got a terminal. of course quake didn't do it by default from esc...
world was created 5 seconds before this post as it is.
You'd be wrong about that.
this is the most interesting new web-related thing in a long time, previously you needed java applets to attain this as smoothly as this(it wasn't as smooth). to top that up, the author has been commenting as well as the author of a project that inspired this project. best slashdot of the year perhaps.
world was created 5 seconds before this post as it is.