Quantcast

[IPython-User] Gate One - web-based terminal emulator

classic Classic list List threaded Threaded
10 messages Options
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

[IPython-User] Gate One - web-based terminal emulator

Serge A. Salamanka
Hello everyone,

There is an outstanding tool to access applications such as Sage and IPython
via terminal called Gate One.
It can be used to provide easy terminal access to your scientific applications.
Here is more information:
Documentation
http://liftoff.github.com/GateOne/About/index.html
Development
https://github.com/liftoff/GateOne/
Web-site
http://liftoffsoftware.com

Regards,
Serge
_______________________________________________
IPython-User mailing list
[hidden email]
http://mail.scipy.org/mailman/listinfo/ipython-user
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: Gate One - web-based terminal emulator

Thomas Kluyver-2
On 11 April 2012 10:58, Serge A. Salamanka <[hidden email]> wrote:
> There is an outstanding tool to access applications such as Sage and IPython
> via terminal called Gate One.

Interesting. It looks roughly similar to the HTML terminal emulator
Pythonanywhere uses - I don't know what it's called:
http://www.pythonanywhere.com/try-ipython/

Gate One can also display images inline.

We should also be aware that it's under AGPL. I don't think that
should be a problem, because all our BSD stuff can be rolled into an
AGPL bundle, but I'm not a lawyer.

Thomas
_______________________________________________
IPython-User mailing list
[hidden email]
http://mail.scipy.org/mailman/listinfo/ipython-user
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: Gate One - web-based terminal emulator

Darren Govoni
In reply to this post by Serge A. Salamanka
A similar but free package can be found at:
http://www.masswerk.at/termlib/
Might require some light coding to connect to a backend service though.

I was going to write a node.js backend for it for ipython. I'll post it
when I'm done.

On Wed, 2012-04-11 at 12:58 +0300, Serge A. Salamanka wrote:

> Hello everyone,
>
> There is an outstanding tool to access applications such as Sage and IPython
> via terminal called Gate One.
> It can be used to provide easy terminal access to your scientific applications.
> Here is more information:
> Documentation
> http://liftoff.github.com/GateOne/About/index.html
> Development
> https://github.com/liftoff/GateOne/
> Web-site
> http://liftoffsoftware.com
>
> Regards,
> Serge
> _______________________________________________
> IPython-User mailing list
> [hidden email]
> http://mail.scipy.org/mailman/listinfo/ipython-user
>


_______________________________________________
IPython-User mailing list
[hidden email]
http://mail.scipy.org/mailman/listinfo/ipython-user
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: Gate One - web-based terminal emulator

Thomas Kluyver-2
In reply to this post by Thomas Kluyver-2
On 11 April 2012 11:29, Thomas Kluyver <[hidden email]> wrote:
> Interesting. It looks roughly similar to the HTML terminal emulator
> Pythonanywhere uses - I don't know what it's called:
> http://www.pythonanywhere.com/try-ipython/

I've found it's the 'Shell in a Box' project (GPL 2):
http://code.google.com/p/shellinabox/

Thomas
_______________________________________________
IPython-User mailing list
[hidden email]
http://mail.scipy.org/mailman/listinfo/ipython-user
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: Gate One - web-based terminal emulator

Fernando Perez
In reply to this post by Thomas Kluyver-2
On Wed, Apr 11, 2012 at 3:29 AM, Thomas Kluyver <[hidden email]> wrote:
> On 11 April 2012 10:58, Serge A. Salamanka <[hidden email]> wrote:
>> There is an outstanding tool to access applications such as Sage and IPython
>> via terminal called Gate One.
>
> Interesting.

Yup, their screenshots use IPython:

http://liftoffsoftware.com/sites/default/files/innovative_features_0.png
http://c306282.r82.cf1.rackcdn.com/multiple_terminals.png

Cheers,

f
_______________________________________________
IPython-User mailing list
[hidden email]
http://mail.scipy.org/mailman/listinfo/ipython-user
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: Gate One - web-based terminal emulator

Brian Granger-3
Haha, that is not IPython.  Looks like it, but our display system
doesn't work with print or !cat.

Cheers,

Brian

On Wed, Apr 11, 2012 at 11:46 AM, Fernando Perez <[hidden email]> wrote:

> On Wed, Apr 11, 2012 at 3:29 AM, Thomas Kluyver <[hidden email]> wrote:
>> On 11 April 2012 10:58, Serge A. Salamanka <[hidden email]> wrote:
>>> There is an outstanding tool to access applications such as Sage and IPython
>>> via terminal called Gate One.
>>
>> Interesting.
>
> Yup, their screenshots use IPython:
>
> http://liftoffsoftware.com/sites/default/files/innovative_features_0.png
> http://c306282.r82.cf1.rackcdn.com/multiple_terminals.png
>
> Cheers,
>
> f
> _______________________________________________
> IPython-User mailing list
> [hidden email]
> http://mail.scipy.org/mailman/listinfo/ipython-user



--
Brian E. Granger
Cal Poly State University, San Luis Obispo
[hidden email] and [hidden email]
_______________________________________________
IPython-User mailing list
[hidden email]
http://mail.scipy.org/mailman/listinfo/ipython-user
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: Gate One - web-based terminal emulator

Thomas Kluyver-2
On 11 April 2012 20:14, Brian Granger <[hidden email]> wrote:
> Haha, that is not IPython.  Looks like it, but our display system
> doesn't work with print or !cat.

I suspect they've done some of their own customisations to allow that.
If that's not using IPython, they obviously really like our prompt
style and escape syntax.

Thomas
_______________________________________________
IPython-User mailing list
[hidden email]
http://mail.scipy.org/mailman/listinfo/ipython-user
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: Gate One - web-based terminal emulator

Brian Granger-3
I looked a bit more at their stuff and I think it is IPython, but they
have built a system that will capture images printed to stdout and
return them to the browser.  Cleverness.

Brian

On Wed, Apr 11, 2012 at 1:34 PM, Thomas Kluyver <[hidden email]> wrote:

> On 11 April 2012 20:14, Brian Granger <[hidden email]> wrote:
>> Haha, that is not IPython.  Looks like it, but our display system
>> doesn't work with print or !cat.
>
> I suspect they've done some of their own customisations to allow that.
> If that's not using IPython, they obviously really like our prompt
> style and escape syntax.
>
> Thomas
> _______________________________________________
> IPython-User mailing list
> [hidden email]
> http://mail.scipy.org/mailman/listinfo/ipython-user



--
Brian E. Granger
Cal Poly State University, San Luis Obispo
[hidden email] and [hidden email]
_______________________________________________
IPython-User mailing list
[hidden email]
http://mail.scipy.org/mailman/listinfo/ipython-user
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: Gate One - web-based terminal emulator

riskable
Hey there...  I'm the author of Gate One (the mysterious, "they" =).  I thought I'd pop in and confirm that it is indeed IPython being shown in those screenshots (and the video).  In fact, I use IPython every day!  Especially when I'm working on Gate One.

Also, your description of how inline images work is spot-on:  Gate One detects/captures JPEG and PNG images printed to stdout, resizes them to fit within the terminal (if necessary), and converts them to data::URIs before sending them to the browser.  It also adds newlines and moves the cursor to an appropriate location to ensure that everything lines up properly.

If you're curious the code that handles all of this is here:

https://github.com/liftoff/GateOne/blob/master/gateone/terminal.py#L1207
(also take a look at the capture_image() function and the _spanify_screen() function to see the complete cycle of 'cat <image>' -> captured -> converted to HTML).

If you have any questions or feedback regarding Gate One just reply to this post.

One last thing...  Since you seemed to like the inline image capability I just posted a video demonstrating something equally as cool:  The new widget() function showing off a real-time load graph of the server I was connected to.  Here's the link:

http://www.youtube.com/watch?v=7M_9I9ofFLU

Here's how that load graph works:  By default Gate One will detect the presence of an existing SSH tunnel and will re-use it (multiplex) for outbound connections to the same server.  This means you can spawn a shell at the other end of an SSH tunnel with very little overhead/latency.  The SSH plugin includes a execRemoteCmd() function (JavaScript) that will run whatever command you want on such a multiplexed shell (in the background) and call a given callback with the result.

The Example plugin (load graph widget) shown in the video just calls the 'uptime' command (via execRemoteCmd()), parses the result, and adds the resulting data points to the graph.  It repeats this every three seconds to keep the graph up-to-date.  Another important thing to note is that subsequent calls to execRemoteCmd() will re-use the existing connection/shell and said connection/shell will automatically terminate itself after a period of inactivity.  So there's no need to worry about dozens of idle/leftover connections.

I look forward to the feedback!
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: Gate One - web-based terminal emulator

Fernando Perez
On Wed, Apr 25, 2012 at 12:55 PM, riskable <[hidden email]> wrote:
> Hey there...  I'm the author of Gate One (the mysterious, "they" =).  I
> thought I'd pop in and confirm that it is indeed IPython being shown in
> those screenshots (and the video).  In fact, I use IPython every day!
> Especially when I'm working on Gate One.

Glad to hear that :)


> http://www.youtube.com/watch?v=7M_9I9ofFLU

Very cool!

> at the other end of an SSH tunnel with very little overhead/latency.  The
> SSH plugin includes a execRemoteCmd() function (JavaScript) that will run
> whatever command you want on such a multiplexed shell (in the background)
> and call a given callback with the result.

That is *precisely* the refactoring of the ipython notebook JS that we
have in progress, to enable similar things in the notebook.  Glad to
hear you guys have that same design and that it works so well.

Cheers,

f
_______________________________________________
IPython-User mailing list
[hidden email]
http://mail.scipy.org/mailman/listinfo/ipython-user
Loading...