Slashdot Mirror


Gate One Will Support X11: Fast Enough To Run VLC In Your Browser

Riskable writes "Ever seen a remote desktop tool that's fast/efficient enough to play back video? Gate One will soon have that capability via the forthcoming X11 support (as demonstrated in the video). I am posting this to Slashdot looking for suggestions and feedback as to how I should move forward with it before I solidify the architecture, API, and even the business end of it (making money). I'll be watching the thread and replying to comments (as I have time). Also, if you're interested you can sign up to be notified when it's available." We've posted a few stories about Gate One previously.

26 of 164 comments (clear)

  1. F/OSS by Anonymous Coward · · Score: 5, Funny

    ...and even the business end of it (making money).

    Well, you just release the source and documentation; then hire yourself out as a consultant and the money will just come in! You can also write O'Reilly books on your software. We all know that O'Reilly authors are all 1%'ers with their private jets and everything.

    1. Re:F/OSS by Anonymous Coward · · Score: 3, Funny

      Mod parent left, mod grandparent right and grand grand parent counter clockwise.

    2. Re:F/OSS by Anonymous Coward · · Score: 3, Funny

      Mod parent Up-Up-Down-Down-Left-Right-Left-Right B, A, Start

  2. Give a man a programming environment by Anonymous Coward · · Score: 3, Funny

    Give a man a programming environment of sufficient power and he will port everything.

  3. The network says no by girlintraining · · Score: 5, Insightful

    Look, the protocol could be the greatest thing since sliced bread. It could have free orgasms built into it. It might even have the cure for cancer.

    But it can't overcome latency, or shannon's law regarding just how much data you can shove over a given network link. You can cheat by using lossful compression, you can employ predictive algorithms, but at the end of the day it'll only be as good as the network lets it. That's why there haven't been any big advancements in this area: There's none to make. Remote desktop will be varying degrees of shitty for the forseeable future, because our network links are shit. ISPs purposefully sabotage remote desktop and VPN because it's a threat to their business model. You can't "protocol" that away. Believe me, people have tried.

    At best, we'll be able to trade one variety of crap for another, but remote desktop will never come close to the experience of actually using the computer at the same location. Human beings start to notice lag between their own actions and computer responses in as little as 50ms. The network links typically take longer than that to send the data. Especially over wifi.

    --
    #fuckbeta #iamslashdot #dicemustdie
    1. Re:The network says no by Bill_the_Engineer · · Score: 4, Informative

      I think the minor detail that was lost in the slashvertisement was that gate one eliminated the need for remote desktop software by being browser based and its performance is at least comparable to other remote desktop software.

      In addition, the author is offering to add X terminal emulation as a feature.

      I don't think he meant to pass it off as the fastest possible protocol out there.

      --
      These comments are my own and do not necessarily reflect the views or opinions of my employer or colleagues...
    2. Re:The network says no by h4rr4r · · Score: 4, Insightful

      Because youtube is not interactive.
      This means it can cache to get to 1080p and that temporary slowdowns are of no concern. With RDP/X11/SPICE you have to have an interactive connection. That means anything you do to get a smoother desktop like caching ends up making the interaction slower.

    3. Re:The network says no by Octorian · · Score: 3, Insightful

      Latency... Latency.... Latency...

      When you're streaming 1080p video, its fine to have a buffer several seconds or minutes long to cover any hicups on the network. For remote desktop use, not so much.

    4. Re:The network says no by Lothsahn · · Score: 4, Interesting

      We talking VNC or RDP? Whether RDP can be significantly improved--I don't know. However, I also find it happens to work very well, even across large distances. There is some lag, but very manageable with US-based ISP's. If you have a low latency, high bandwidth network, thin clients work just like a local desktop to any normal human being for word and web-browsing.

      VNC, on the other hand, does not work this way. Despite having very low latency and high bandwidth, my VNC connection from just inside my house is terrible. There's significant lag and other problems. Across wide network links? It's horribly painful to use.

      I'm not sure if you were describing the state of RDP or VNC, but given the article is about VNC, there's a tremendous amount of improvement that is possible in that protocol. RDP demonstrates this. We should realize this and make VNC closer (or better) than RDP.

      --
      -=Lothsahn=-
    5. Re:The network says no by SJHillman · · Score: 5, Funny

      I don't know... most of our RDP users where I work just do the same thing over and over... you could probably buffer their actions.

    6. Re:The network says no by MozeeToby · · Score: 5, Informative

      If you have an otherwise decent connection you should be able to play 1080p just fine. If you can't, your ISP is probably sending the traffic to one of the massively overloaded mirrors they run. You can block them easily by following the directions here for Linix or here for Windows. Or you can apply the same rules at your router to take care of the issue for your whole network.

    7. Re:The network says no by Riskable · · Score: 3, Informative

      I hear what you're saying and I agree that network latency is one of the biggest problems. Having said that, I have performed testing with my home Comcast Internet connection with Gate One running on a Rackspace cloud instance (512MB). The latency is negligible. My ping time to that server was a pretty steady ~50ms and apps like Chrome (yes, Chrome inside Chrome), LibreOffice (Calc/Writer), Sublime Text 2, kate, etc worked very well.

      --
      -Riskable
      "Those who choose proprietary software will pay for their decision!"
    8. Re:The network says no by gstoddart · · Score: 5, Informative

      I'll worry about that when my data-center is on Mars.

      Then, I'm afraid you might not have enough practical experience on the topic.

      I've encountered performance issues across an organization, and definitely been able to identify it as network latency.

      And when we spoke with the network architects, they essentially told us it could be made no faster because of the distances involved. I'm not talking trans-continental/trans-oceanic links, I'm talking two data centers separated by only about a thousand miles.

      And, with the latency issues, we can't make some things responsive enough to interactive users to not be exceedingly painful. A 60-100ms latency is enough to have users screaming at you as everything they do has a long delay in it -- for interactive applications, that's very noticeable.

      You don't need to have data centers on Mars to be able to experience latency which is exceedingly painful. Within the last few months I've personally ran up against it in an organization which has offices through North America.

      If you're just mirroring data, sure. But running an interactive application over a long-distance link for which latency becomes a factor -- that can be very painful. And even within North America, you can easily get to the point where the latency can't be fixed because the signal can still only travel so fast.

      It really doesn't take all that much distance before it becomes observable. And angry/frustrated users don't want to be told about the laws of physics. They want to be able to click a button and not wait several seconds.

      --
      Lost at C:>. Found at C.
    9. Re:The network says no by Riskable · · Score: 4, Informative

      Reading your comment makes me think you'll love Gate One's ability to resume your session--even after restarting the process. I'll give you a hypothetical example:

      1) I connect to https://gateone.mycompany.com/ and open up LibreOffice Calc.
      2) I connect to the server running Gate One via SSH and run "/etc/init.d/gateone stop"
      3) The web page reports it has been disconnected but it will retry connecting every five seconds.
      4) I run "/etc/init.d/gateone start"
      5) The web page reconnects to the Gate One server and my spreadsheet is back in front of me--right where i left it.

      That works with terminals too if you install the dtach command. Everything will resume right where you left off even after killing and restarting the gateone.py process. This makes upgrading Gate One about as easy as can be; users will experience ~5 seconds of down time while the upgrade takes place and the process is restarted.

      --
      -Riskable
      "Those who choose proprietary software will pay for their decision!"
    10. Re:The network says no by Riskable · · Score: 3, Informative

      I'm going to do everything in my power to make sure your use case works because I want to be able to do that too! I also want to be able to pick up where I left off if I have to work on something while I'm out & about. Just whip out my Chromebook and I'm coding using the desktop (or just the app) I left behind.

      So yeah, I just gave away an interesting feature: If you're using a Linux desktop (like I do) and you fire up Gate One it can connect to the existing X11 display and forward just the app you want it to. It doesn't have to be the entire desktop.

      --
      -Riskable
      "Those who choose proprietary software will pay for their decision!"
    11. Re:The network says no by Dahamma · · Score: 4, Informative

      Three reasons this isn't all that "insightful" (sorry):

      1) two hours to encode a two hour movie is real time.

      2) 1080p h.264 video encoders are available in $10 chips. Or if you don't want dedicated hardware for it, it can also be done on a PC at good quality using a half-decent GPU.

      3) there are already decent examples of this being done in the real world - OnLive, GaiKai, etc. So it's clearly not only plausible, but working.

    12. Re:The network says no by forkazoo · · Score: 3, Informative

      Well, it probably does real time encodes of 24 FPS content, but perhaps would struggle a bit more with 60 FPS+ Desktop content. Likewise, if the content is photographic, the compression artifacts tend to be less noticeable. Have some simple shapes and bright colors with crisp edges like a GUI in the mix, and you tend to need much higher quality than with photographic content. Even doing the encode in real time at adequate quality, you are probably encoding to a long GOP codec which has quite a lot of inherent latency. If the GOP size adds 1 second of latency, it doesn't matter how much CPU and bandwidth you throw at the problem, it would still be very bad for real time interactive uses.

      * (Used to be an Engineer responsible for dealing with remote sites and technology for real time remote color grading sessions transmitted over the internet and over private WAN links using H.264 and JP2K based codecs mostly for TV commercials.)

    13. Re: The network says no by rosseloh · · Score: 3, Interesting

      It's not necessarily distance that's the problem, but the number of hops in between. As a simplified example, if you were 1000 miles apart but had a direct fiber line with powerful equipment between locations, your latency would be less than if you were 10 miles apart but had 10 routers in the middle (I'm ignoring distance limits on the fiber and assuming it's one line). The routers have to process each packet, adding a bit to the round trip time for each hop. Not much time, to be sure (a few milliseconds), but it's there. And the more you're transmitting (1080p video, for example), the slower it will seem. The default ping packets in Windows aren't particularly big, and can be slightly misleading if you're looking for slowdowns regarding large transfers.

      Your architects are right, though, in that "distance" is a good way to put it. It also depends on how your company is laid out - VPN links between offices? point-to-point T1? Etc...

  4. Ever seen...? by Beardydog · · Score: 4, Informative

    Yes. Splashtop Remote. I haven't used VNC in years, literally. Splashtop streams audio and video we'll enough to play games over, locally. Their account-based system nonsense is horrific, buy you can avoid it if you connect over a VPN.

  5. RDP - Win8 client to a Win2012 backend - very fast by deviator · · Score: 3, Interesting

    Remote Desktop Connection (RDP) connected to a Windows 2012 server back-end is very capable of streaming video. It's kind of shocking how fast it is.

    I've used some hosted remote desktop services over the past few years that are nearly indistinguishable from launching and using local applications - over a garden variety 10Mb/sec cable internet connection.

    I used to also think that "they'll never overcome latency to the point where it's running at sufficient speed to feel like it's a local app" but at this point feel like that is a wrong assumption.

  6. what is Gate One? by Gravis+Zero · · Score: 4, Informative

    Gate One is an HTML5 web-based terminal emulator and SSH client.

    --
    Anons need not reply. Questions end with a question mark.
    1. Re:what is Gate One? by Riskable · · Score: 4, Informative

      That's what it is right now. Soon it will be so much more.

      X11 is just the start. I also have File Transfer and other apps in the works. The File Transfer app will be interesting... It will be more than just an, "SFTP client." It will allow you to fetch a file from just about any URL (back-end is already written and supports ftp:// sftp://, ftps://, magnet://, and even dns://, dict:// and other obscure things which I think makes it all that more interesting/useful) and deliver it to any number of destinations you like. Even if the destination uses a different protocol.

      So for example, if you wanted to download a magnet/bittorrent URL and have it automatically delivered to your home theater PC, your phone, and your brother's computer when complete you could do that.

      --
      -Riskable
      "Those who choose proprietary software will pay for their decision!"
  7. Re:WTF? by wiredlogic · · Score: 3, Insightful

    Vaporware doesn't generally have a repository on Github.

    --
    I am becoming gerund, destroyer of verbs.
  8. Re:RDP - Win8 client to a Win2012 backend - very f by Riskable · · Score: 4, Informative

    What is the CPU load while watching a video over RDP? I'm genuinely curious.

    For reference, the gateone.py process(es) hover around 5% utilization when playing back a video @30fps (~720p resolution). Here's what it's doing while a video is playing back:

    1) Capture the screenshot of the changed region on the X11 display. It can do this every 33ms (a capped equivalent to 30fps). It only needs to take screenshots when there's a change but in the case of a video it happens very fast, hence the 33ms cap.
    2) Convert the raw captured image to selected format (JPEG for this example). It also makes a hash of the image that's used by both the server and client JS for caching purposes.
    3) Transmit the image to the browser. If the image has recently been sent to the client it will be aware of this and will only send the hash. This transmission occurs in binary mode over the WebSocket (it's complicated).

    From that point it's up to the client-side JavaScript to handle displaying the raw JPEG data. It is quite CPU-intensive if your hardware doesn't accelerate 2d canvas elements but not too bad (Chrome will hog around 50-80% of a single core while the video plays). Everything will remain responsive regardless.

    For reference, I've done extensive benchmarking of the browser-side CPU utilization and Chrome's developer tools will report 81% idle even when the actual CPU consumption of the process is nearing 80%. That means that all the overhead is inside the code that renders canvas elements; which is good because it means my JavaScript is not a bottleneck.

    --
    -Riskable
    "Those who choose proprietary software will pay for their decision!"
  9. Re:What remote desktop won't play video? by h4rr4r · · Score: 4, Interesting

    Try tigerVNC and get back to me.

    You can run 3d HD games over it.

  10. smart desktop says yes by dutchwhizzman · · Score: 3, Interesting

    If you recognize that you are in fact streaming video, you can buffer that video ahead and keep the rest of the display nice and interactive. There's no reason you can't divide the display you are remote serving into several sections and give them each their own update/caching/buffering strategies.

    --
    I was promised a flying car. Where is my flying car?