Author Topic: Cloud IDEs  (Read 4559 times)

Offline Hooman

  • Administrator
  • Hero Member
  • *****
  • Posts: 4955
Cloud IDEs
« on: June 26, 2018, 03:07:26 AM »
I was taking a look at a few Cloud IDEs recently.

A Cloud IDE is basically a complete online programming environment on a remote server, which you access through a web page. It has a complete syntax highlighting programming editor with project support, compilers so you can compile and test your code, terminal access for command line programs, and usually some kind of web output support for web projects. It all runs remotely, and is built on top of things like virtual machines or Docker.

Some Cloud IDEs even have collaboration support, much like Google Docs, where each person gets their own editing cursor, allowing multiple people to edit the same file at the same time. This would be really interesting to try out during a pair programming session. I didn't see any options that had audio call support, so you'd need external software for that. Perhaps Discord or Skype.

The IDE runs in a Linux environment on the server, so that's what you'd get for terminal access within the Cloud IDE. If someone wanted to test things on a Linux environment, even solo, this might be a good solution.

There are a few options that have a free tier. Here's one of the more promising ones I tried out:
Codenvy

It had convenient environment setup for GitHub projects, so you can just click through the menus and get any of the OPU GitHub projects deployed to a Cloud IDE instance and edit away.


Anyone up for trying it out in collaboration mode?  :D

Offline leeor_net

  • Administrator
  • Hero Member
  • *****
  • Posts: 2352
  • OPHD Lead Developer
    • LairWorks Entertainment
Re: Cloud IDEs
« Reply #1 on: June 26, 2018, 09:26:49 AM »
I'm game!

I tried doing OutpostHD but... well... So many dependencies. It's making me think it's time to start using submodules.

Offline Hooman

  • Administrator
  • Hero Member
  • *****
  • Posts: 4955
Re: Cloud IDEs
« Reply #2 on: June 27, 2018, 03:24:51 AM »
Right, I also gave NAS2D and OutpostHD a quick try. It uses an older version of Ubuntu, so it's got the messy dependency problems.

Some steps to get things mostly working:
Create a workspace, and add both the NAS2D and OutpostHD Git projects.
From the terminal switch to the NAS2D folder and run:
 sudo apt update
 sudo make install-deps-ubuntu
 make -k

It still gives errors about SDL_SetWindowResizable due to the outdated version of SDL installed by Apt.


I was working on some source install stuff, related to my Docker work. I kind of revisit it from time to time over the last few weeks. Hopefully I'll get it done soon, and having something working for older versions of Ubuntu. Maybe we can work on that together.

Offline leeor_net

  • Administrator
  • Hero Member
  • *****
  • Posts: 2352
  • OPHD Lead Developer
    • LairWorks Entertainment
Re: Cloud IDEs
« Reply #3 on: June 27, 2018, 01:54:10 PM »
I was doing a little analysis of the executable file generated after compiling OutpostHD against NAS2D and its dependencies... and it includes a LOT of code that I'm not sure is really necessary. PhysFS, for instance, includes all the code for loading DOOM wad files and Decent HOG files... It's definitely making me want to switch the filesystem code over to the stream library you and Vomov built.

But anyway, I'm definitely liking the editor interface. It's clean and does the job well. I also like the color scheme. It's different than what I'm used to with Visual Studio but I'm fairly flexible with that sort of thing.

I'm going to work on submodules with Git and see about including the dependencies in some way or at least a script to get the appropriate dependencies. I did like that I could run commands in a terminal within the IDE itself and that it gave me sudo access so we can definitely set up an appropriate environment.

SDL 2.0.5 is going to be the tough part. I want to upgrade to 2.0.9 but it seems getting it is kind of painful so I'm thinking of setting up a script to download build and install the latest stable SDL release and go from there.

Anyway, regardless of that, I think I like this over Atom. It just feels better somehow. I love that it has git integration as well.

Offline Hooman

  • Administrator
  • Hero Member
  • *****
  • Posts: 4955
Re: Cloud IDEs
« Reply #4 on: June 28, 2018, 01:23:53 PM »
It's kind of sick how much bloat can be included when unused code doesn't get stripped out. There may be some compiler/linker flags to help with that.

... and "Vomov"? Autocomplete?

So you know, I'm already working on a Makefile to go with my Docker stuff to setup a build environment on Ubuntu 16.04. I figured a Makefile would be convenient since it could run for a normal system install, or within a Docker image for setup there. So far it downloads a list of needed source archives. I had it do some unpacking, though I wasn't entirely happy with that part. I'm sure there's a better "Make" way to do it. It's also got some code to run configure and compile for each of the packages. Not all packages need configure though. There are rules for install and clean. The design is a bit rough at present but has the basic idea down.

Maybe I'll catch you on IRC in the evening and we can go over some of this.

Offline leeor_net

  • Administrator
  • Hero Member
  • *****
  • Posts: 2352
  • OPHD Lead Developer
    • LairWorks Entertainment
Re: Cloud IDEs
« Reply #5 on: June 28, 2018, 05:40:10 PM »
Not sure why I put Vomov in there, I meant Vagabond. Vomov did the original work on the new research tree for OutpostHD -- might be his name was on my mind.

And yeah, I'm surprised at the amount of code it pulled in. I mean, I guess I understand why it did -- the code paths are there even if my program never actually uses them -- the linker doesn't have any way to really determine that. Definitely is giving me motivation to eliminate some of the dependencies in OPHD.
« Last Edit: June 28, 2018, 06:32:55 PM by leeor_net »

Offline Vagabond

  • Global Moderator
  • Hero Member
  • *****
  • Posts: 1015
Re: Cloud IDEs
« Reply #6 on: June 28, 2018, 09:52:42 PM »
Let me know how the collaboration goes and how it compares to pair programming using Team Viewer.

I was going to ask about Vomov as well. :)

-Brett

Offline Hooman

  • Administrator
  • Hero Member
  • *****
  • Posts: 4955
Re: Cloud IDEs
« Reply #7 on: October 03, 2018, 11:33:22 PM »
@Leeor, I was able to get OPHD to compile on CodeEnvy. I used the newer source install Makefile that's part of the Docker support branch. That means CodeEnvy can provide a Linux based development environment for working on OPHD, available to anyone on the OPU team, without having to install anything locally. You should have gotten your invite to the OPU team on there a few days ago.

Side note, OPHD doesn't run on CodeEnvy, since there is no X-server available in that environment, so no way to display graphics. It still lets you work with Linux tooling though, see any Linux compiler error messages, and use the environment interactively.

Alternatively, you can try installing Docker and optionally Gnu Make of your own machine, and see if you can get a Linux version of OPHD compiled from Windows on your own hardware.



I tried out a collaborative session on CodeEnvy with Brett and Angellus. The code collaboration features of CodeEnvy were uninspiring. We could all edit the same files, and we could see each other's update after a very short delay, however, we were not able to see each other's mouse or keyboard cursors, and had no way of knowing what the other person was looking at, or which files they had open. We ended up resorting to installing screen and interacting in a screen session. If all you need is a screen session, it works, though I found the experience with TeamViewer to be much better.

At least we had sudo to give us root access on the box to install things like screen.

Just the other day, I got an email saying the free tier on CodeEnvy was now being limited to 2 hours per day. Thankfully that's certainly still enough for a pair programming session.



I tried out CodeAnywhere with WhiteClaw. CodeAnywhere boasted features to show each other's cursors. Unfortunately, we were not able to figure out how to get collaboration working. We discovered there is both a user setting and a project setting, which both have to be enabled before collaboration is possible. The user setting defaulted to off. After we both enabled both these settings, we still were not able to get things working. The system had some feature where you can paste links to your project or file to other people, and also set the permissions. Unfortunately even after trying to enable everything, we were still getting access denied error messages. The system seemed far from intuitive and problem free.

Maybe we can still figure something out in the future.

Offline leeor_net

  • Administrator
  • Hero Member
  • *****
  • Posts: 2352
  • OPHD Lead Developer
    • LairWorks Entertainment
Re: Cloud IDEs
« Reply #8 on: October 04, 2018, 12:15:52 AM »
Sounds like TeamViewer is still the better option. These cloud IDE's seem to be doing an awful lot of posturing without actually offering any compelling features especially with major features being behind pay walls. Giant red flags and "NOPE" for me.

Granted TV has its own limitations (namely bandwidth usage, not the most efficient way to do it).