Coder Social home page Coder Social logo

pylonide / pylon Goto Github PK

View Code? Open in Web Editor NEW
211.0 15.0 72.0 163.61 MB

Pylon IDE, a Cloud9 v2 descendant with some added extras and support for modern node >= 14.21.1 (v15.x, v16.x, v17.x, v18.x, v19.x, v20.x). OSS licensed.

License: GNU General Public License v3.0

Makefile 0.02% JavaScript 93.65% Shell 0.02% CSS 0.69% HTML 3.14% CoffeeScript 0.14% Ruby 0.01% Scilab 0.90% Batchfile 0.01% ActionScript 1.33% PHP 0.01% Pug 0.11%
ide cloud9-ide programming c9 c9v2 node javascript ace pylon ipad

pylon's Introduction

Build Status Master Dependency Status Development Dependency Status Bitcoin donate button € donate button

Pylon IDE

Pylon is a web based integrated development environment built with Node.js as a backend and with a supercharged JavaScript/HTML5 frontend, licensed under GPL version 3. This project originates from Cloud9 v2 project.

About

Pylon is built entirely on a web stack, making it the most hacker-friendly IDE today. Fork it, hack it, make it your own and if you think others would benefit, file a pull request against development branch in this repo or create an issue. You can run Pylon locally or on a remote server - always ready to be available from wherever you are, assisting you to breathe life into every aspect of your ideas and projects.

Features

  • High performance ACE text editor with bundled syntax highlighting to support a wide range of programming languages.
  • Modern node support (NodeJS >= 14.21.1)
  • Up to date dependencies and compatibility fixes
  • Terminal

Screenshots

Browser used: Safari 12.1.1

Alternative forms based authentication

ScreenShot

Login picture by Annie Spratt - Fog (Unsplash license)

The main user interface

ScreenShot

Additional plugin dockpanel view

ScreenShot

Check out pylonide/pylon-plugin-mungit for the Git plugin.

Browser Support

Modern versions of Chrome and Safari are supported. Firefox, altough functional, no longer works as intended as of version 64.0. In the future, efforts will be made to restore compatibility.

Basic iPad Pro support with keyboard

Efforts have been made to make Pylon usable with iPad. However, for a smoother ride, some keyboard settings needs to be changed:

  • Settings -> General -> Keyboard -> Auto-Correction -> Off
  • Settings -> General -> Keyboard -> Smart Punctuation -> Off (interferes with coding by changing quotes)
  • Settings -> General -> Keyboard -> Shortcuts -> Off (interferes by displaying bottom bar that hides the console prompt)

For quality of life it is recommended to remap Caps Lock hardware key to act as an ESC key:

  • Settings -> General -> Keyboard -> Hardware Keyboard -> Modifier Keys -> Caps Lock Key -> Escape

Installation and Usage

If installing on Windows, please refer to Installation on Windows.

Requirements (>= 2.9.0):

  • NodeJS >= 14.21.1
  • g++-4.9 (Required for node-pty compilation)
  • make (Required for node-pty compilation)
  • python (Required for node-pty compilation)

Install:

git clone https://github.com/pylonide/pylon.git
cd pylon
npm i

The above install steps creates a pylon directory with a bin/pylon.sh script that can be used to start Pylon:

bin/pylon.sh

Optionally, you may specify the directory you'd like to edit:

bin/pylon.sh -w ~/git/myproject

Pylon will be started as a web server on port -p 3131, you can access it by pointing your browser to: http://localhost:3131

By default Pylon will only listen to localhost. To listen to a different IP or hostname, use the -l HOSTNAME flag. If you want to listen to all IP's:

bin/pylon.sh -l 0.0.0.0

If you are listening to all IPs it is advised to add authentication to the IDE. You can either do this by adding a reverse proxy in front of Pylon, or use the built in basic authentication through the --username and --password flags.

bin/pylon.sh --username leuser --password plnisawesome

Pylon is compatible with all connect authentication layers, to implement your own, please see the plugins-server/cloud9.connect.basic-auth plugin on how we added basic authentication.

Installation on Windows (experimental)

If you are on Windows Insider Program, use the Bash on Windows feature to install Pylon.

Install NVM to manage node versions. Install a node version to your liking. The following is needed to install the needed build tools:

sudo apt-get update
sudo apt-get install build-essential

Clone the Pylon repo to your machine and run npm:

npm install
bin/pylon.sh -w . -l 0.0.0.0

Installation inside Docker container

Pylon IDE can be successfully deployed and run within a container. However, if the npm utility complains permissions during install. One must include --unsafe-perm for the installation to pass successfully.

Updating

To update to the latest version (if this doesn't work, just make a fresh clone):

git pull
npm update

Creating your own Plugins

Pylon functionality is all created around server and client-side plugins. However, there is hardly any documentation about the APIs to create your own plugins. To get you started, please see pylonide/pylon-plugin-mungit to see how to get started for a client-side only plugin.

Going forward, there will be efforts made to sort out the documentation and write some tutorials to make it more easier to get started.

License

The GPL v3.

Contributing

Open new issue for discussion and/or feel free to submit a pull request against the development branch.

pylon's People

Contributors

basdewachter avatar bmatusiak avatar bnoordhuis avatar c9developer avatar cadorn avatar creationix avatar dependabot-preview[bot] avatar dependabot[bot] avatar ejpbruel2 avatar exsilium avatar fjakobs avatar fjakobstest avatar giannis avatar gjtorikian avatar ide-ajax-org avatar janjongboom avatar lennartcl avatar linh81 avatar lukaszlipinski avatar mattpardee avatar mikedeboer avatar mikeytest avatar mostafaeweda avatar nightwing avatar rendez avatar rikarends avatar schamane avatar sergi avatar tanepiper avatar zefhemel avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

pylon's Issues

C9v3 Look option

While the C9v2 is the only OSS type of Cloud9, some of the people will be thrown away of the old UI. We should provide the classic C9v3 skins on C9v2 because it has a better UX, and the fact its easy to navigate to.

Closing Browser does not kill terminal sessions

Closing Browser does not kill terminal sessions, only thing that kills sessions is when you ctl click a terminal tab.

this is running over nginx 1.4

Nginx Config

upstream cloud9 {
server 127.0.0.1:3131 weight=3;
}

server {
listen 80;
server_name www.google.this.is.fake.lol
location / {
proxy_pass http://cloud9;
proxy_redirect off;
proxy_set_header Host $host:$server_port;
proxy_set_header X-Real-IP $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_max_temp_file_size 0;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
client_max_body_size 10m;
client_body_buffer_size 128k;
proxy_connect_timeout 90;
proxy_send_timeout 90;
proxy_read_timeout 90;
proxy_buffer_size 4k;
proxy_buffers 4 32k;
proxy_busy_buffers_size 64k;
proxy_temp_file_write_size 64k;
}
}

Compatibility with Firefox Quantum 64.0

Certain IDE elements no longer render using Firefox Quantum 64.0.

Most probably this is caused by the introduced changes to CSS:

  • The non-standard -moz-box and -moz-inline-box display values have been hidden from web content (Mozilla bug 1496961).
  • The non-standard ::-moz-tree pseudo-elements have been hidden from web content (Mozilla bug 1496961).

This is covered in more detail also here: https://www.fxsitecompat.com/en-CA/docs/2018/display-moz-box-and-moz-tree-pseudo-elements-have-been-removed/

Support Forms Authentication

Currently Pylon supports Basic Authentication via pylon.connect.basic-auth module, which is enabled when username and password is defined as startup options. It works relatively well for most scenarios but it does have disadvantages:

  • User credentials are sent in the request;
  • No way to log out, except by ending the browser session;
  • Vulnerable to cross-site request forgery (CSRF);

When Pylon is configured as a Web-app on iOS home screen, the password must be passed every time as session cannot be continued.

To overcome the shortcomings of Basic Authentication, implement a new authentication module which supports Form-based Authentication as pylon.connect.form-auth.

That tab in which a picture (with .png extension in my case) is opened can't be closed.

No matter If I use shortcut Alt+W or click on the Cross or click on Close Tab in right click context menu, I can't close the tab!

For example there is a picture named screenshot.png, if I double click on it in the Left Files Explorer Window it will be opened in a new tab called screenshot.png but I can't close it afterwards. Even refreshing the window has no effect on it.

I confirm that those opened tabs stay open even after restarting Cloud9.

Engine.io v2.0.0 crashes cloud9 on access

Dep upgrade of engine.io v2.0.0 crashes Cloud9 when accessing the page with the following:

/Users/exile/Projects/cloud9/node_modules/engine.io/lib/server.js:360
    self.ws.handleUpgrade(req, socket, head, function (conn) {
    
TypeError: Cannot read property 'handleUpgrade' of undefined
    at /Users/exile/Projects/cloud9/node_modules/engine.io/lib/server.js:360:12
    at Server.verify (/Users/exile/Projects/cloud9/node_modules/engine.io/lib/server.js:171:3)
    at Server.handleUpgrade (/Users/exile/Projects/cloud9/node_modules/engine.io/lib/server.js:349:8)
    at Server.<anonymous> (/Users/exile/Projects/cloud9/plugins-server/c9.smith.io/smith.io.js:229:16)
    at emitThree (events.js:121:20)
    at Server.emit (events.js:194:7)
    at onParserExecuteCommon (_http_server.js:409:14)
    at HTTPParser.onParserExecute (_http_server.js:377:5)

Found an open filed issue of a possible bug in engine.io: socketio/engine.io#473 - Look into the proposed fix.

Aggressive socket throttling in modern browsers

Noticing some weird behaviour using modern browsers where sockets are disconnected when Pylon is in a background tab. Safari in MacOS seems to add additional throttling logic that makes usage unbearable.

Symptoms and behaviour are more detailed in socketio/socket.io#2924

Workarounds:

  • Use in a separate Safari window
  • Use Safari technology preview browser

Terminal does not wrap input line & keyboard paste not working

Not sure if this is a issue with the terminal or my idea of how the terminal must work.

But when you reach the end of the line it does not wrap the input to the next line. But rather restart input on the same line, overwriting any text in its way.

A side node, I'm on a mac and cmd+v works in the editor but not on the terminal. But double click paste, so I'm using that atm but moving my hand from the keyboard is a erk!

Thanks for maintaining this and making sure it runs nicely.

Ace upgrade from 1.2.9 -> 1.3.1 breaks c9

Upgrading from 1.2.9 to 1.3.1 seems to break c9 due to the new undoManager implementation and underlying interface changes.

Here's the breaking commit

ajaxorg/ace@64d5077#diff-636b36d7e1fc09db855366c08876e490

undoManager.addSession(this);

The undoManager can be different type during load: apf.actiontracker {$supportedProperties: Array(6), $propHandlers: {…}, $booleanProperties: {…}, addEventListener: ƒ, $uniqueId: 761, …} in which case there's no such function as addSession();

The following calls also fail due to that. More investigation needed but most probably requires changes in apf.

this.$undoManager.add(delta, this.mergeUndoDeltas);
this.session.getUndoManager().addSelection(sel);

New functions introduced:

add: function() {},
addSelection: function() {},
startNewGroup: function() {},
addSession: function() {}

Search files here with show in console produces console warnings from ace

The following is shown when using the search files here function:

  • ace.js:3532 - Automatically scrolling cursor into view after selection change this will be disabled in the next version set editor.$blockScrolling = Infinity to disable this message
  • ace.js:6685 - Use of document.insertLines is deprecated. Use the insertFullLines method instead.

window.applicationCache is undefined in Chrome 70 / Firefox 63

Dear pylon maintainer:

An error occured after I upgraded to Chrome 70 today and re-launch pylon IDE. It said window.applicationCache is undefined. Firefox has similar issue. And in this case IDE cannot open or edit any files. This issue can be reproduced on latest pylon master branch.

It looks as if window.applicationCache feature has been turned off in newer browser releases. Very appreciated if you could take a look to this.

The error output on Chrome console looks like below:

1

Investigate engine.io v3 upgrade

Engine.io has released version v3.0 and with it abandons node.js v0.10/v0.12 support. Investigate if it's possible to maintain the older node support while still upgrade to the newer engine.io stack.

workspace file tree does not follow `ln -s`

I have a workspace /home/ubuntu/workspace and inside the dir I have a symlink ln -s /opt/prjx prjx. I see the folder but I can not expand it in the tree view.

This might be for security? or my symlinks is just wrong. I tried relative symlinks with no success.

lrwxrwxrwx  1 usr usr   15 May  9 12:05 prjx -> /opt/prjx/
lrwxrwxrwx  1 usr usr    7 May 10 21:33 tmp -> ../tmp/

[DEP0013] DeprecationWarning: Calling an asynchronous function without callback is deprecated.

With node v8.0.0 the following Deprecation warning is given:

(node:25347) [DEP0013] DeprecationWarning: Calling an asynchronous function without callback is deprecated.
    at makeCallback (fs.js:127:12)
    at Object.fs.close (fs.js:599:20)
    at /Users/exile/Projects/cloud9/node_modules/vfs-local/localfs.js:545:28
    at FSReqWrap.oncomplete (fs.js:135:15)

This impacts exsilium/vfs-local

Merge APF as PPC to this project

Ajax.org PlatForm (APF) was originally designed as a 100% pure JavaScript framework for creating real-time collaborative applications. It was LGPL licensed and a cool thing in 2009 (the same year that Node.js got its first release). Ajax.org also had created its own client/server side component library (O3) that had JavaScript APIs available as Server-Side JavaScript (SSJS), Site-Specific Browser (SSB) and browser plugin runtime. The APF framework was used to create Cloud9 and is still a major component in Pylon. As APF and O3 both have died as a generic framework libraries, the packaged APF library contains a lot of dead code that is not used.

Currently, to fix any Pylon issues or to create new functionality that has a root cause in the platform code is tricky, because Pylon only uses APF as a framework library and is not included in this repository.

The goal of this issue is to

  • merge APF to this project as PPC (Pylon Platform Code)
  • archive apf and apf-packager projects
  • make it possible to build a parity version of PPC to APF during npm test || npm build

This will greatly help in fixing issues like #65 going forward.

Increase maximum upload file size

I went through the history of the limit and didn't find a reason for the limit. d08c2de

This task I think will involve testing different file sizes on different browsers/devices to see what can be handled successfully. I have successfully tested files less than 2GB in desktop chrome, larger files I think had problems and need to be investigated, I suspect an integer overflow.

It may also be determined whether or not this should be a user configurable setting, but that is not required.

The code that controls the limit is in https://github.com/pylonide/pylon/blob/master/plugins-client/ext.uploadfiles/uploadfiles.js

Project name change to Pylon IDE

Some background to give context on how Cloud9 and this maintenance fork came to be, where we are now and what will happen next.

Cloud9 IDE was spawned from Ajax.org and was one of the first companies to offer Development-as-a-Service (DaaS) tooling. Cloud9 was founded in 2010 and their development started at the time when Node.js had just released version v0.2.0. Wrapping their solution around the awesome ACE editor, they were clearly the trailblazers in their space and in uncharted territory at the time. They received $5.5 million in Series A funding from Accel Partners and Atlassian Software in 2011 and against all odds, they ended up releasing Cloud9 IDE v2 under the GPLv3 license. 🙌

As the popularity of Cloud9 increased, so did the tunnel vision development - features released in the cloud were no longer made available via the GitHub repository. Community grew a bit restless and also several GitHub issues were raised to address the future of Cloud9. One crucial feature that I myself was looking for, was a working terminal that I ended up integrating as a feature branch during summer of 2013. The developers at that time did hint that version 3.0 of Cloud9 is a major rewrite of the software and that we should all stay tuned for the eventual release and update in GitHub.

After awhile, in early 2015, it was announced that Cloud9 is changing to proprietary licensing due to business reasons to which an acquisition by Amazon followed in mid-2016. Today, The Internets seems to identify Cloud9 more as a professional multi-game esports organization, rather than a web based IDE. The original site for the product (c9.io) is being wound down and product itself assimilated to the AWS offering.

This is all great but where does it leave Cloud9v2? This maintenance fork grew out from the terminal branch organically as the original parent repository together with the issue tracker was deleted. The same happened to some of the dependencies that this project relies upon - APF being the most prominent one. As such, there was no "official" forking taking place but rather series of subconscious activities around the fact. Because the name of the project(s) were left unchanged, it was also challenging to publish them to sites like npm.

After all these years, I believe it's time to actually fork, rename and move forward with this project. After careful consideration, the new name will be Pylon IDE, or just Pylon. Due to the numerous dependency repositories, it's also a proper time to change the GitHub namespace to an organization so that it would allow better management of this project as a whole, covering all it's dependencies and plugins. Using a new namespace will allow a release to npm and will eliminate the constraint to eventually reach a major version bump to v3.0.0 and beyond.

What does it all mean?

A release of v2.2.2 will be done from this repository after which the active development will move to github.com/pylonide where the project will see further development with some (hopefully) bigger architecture changes included.

This is all done to encourage new people to try this solution out and contribute back where able, leaving the license to GPLv3, as it was originally meant to be.

Because of the eventual software entropy, I don't want to leave this specific repository in a limbo, nor in some obscure "archived" state hanging under my personal account. As such, the current plan is to:

  • Release Cloud9 v2.2.2
  • Transfer ownership of Cloud9 and dependency repositories under the new organization (pylonide)
  • Rename the project
  • Make the small changes required for the project to compile with minimal namespace changes
  • Bump the minor release version and Re-release as Pylon IDE v2.3.0 and also publish packages to npm
  • A new exsilium/cloud9 repo will be created for redirecting users, as I've seen the link published in HN and other places
  • Continue to build from there as an OSS project with it's own identity and encourage people to add features/improvements
  • The criteria for v3 release would be that Cloud9 is no longer referenced within the project as not to confuse nor clash with C9v3

If you have questions, concerns or want to share some ideas, please use this issue to do just that! Thanks & Cheers!

Sub-tasks

  • Transfer repository ownership of cloud9 and dependency projects to pylonide
  • Rename Cloud9 repository to pylon
  • Re-OAuth the pylonide organization to enable external integrations
  • Re-release as v2.3.0
  • Publish to NPM
  • Modify Wiki to reflect the name change

Uploads not canceling

I'm going to try and fix this myself but wanted to put this here to update status on it and in case anyone comes across this issue...

I've noticed a number of issues with canceling uploads, which turned out that the current upload is never actually canceled on the client side, rather only the UI is updated.

Easy way to reproduce is to upload a file, cancel mid upload and watch the file keep growing on the server. This causes other problems if you then try to upload again, the file becomes larger than it is supposed to be and can be corrupt.

I traced it down to some unimplemented code or possibly a bad merger. But the code in question is in this commit:

f4d17ae#diff-c182d692a529514070174c0f5f239013

Basically that commit updated uploadfiles.js by sending a 'cancelall' message and expecting a 'canceled' message back from uploadworker.js, but in that commit uploadworker.js was not updated with support for 'cancelall' or 'canceled'.

The commit says the code came from some hotfixes branch, but I was not able to find the branch (looked at several of them), so I have no idea if this is a bad merger that didn't include uploadworker.js or incomplete code.

As a result the solution may be just to implement the missing code.

Cloud9v2 unresponsive after refresh - 100% CPU usage

On the development branch using Chrome running Cloud9 in Ubuntu 16.04 LTS:

  • open Cloud9 and a terminal session
  • refresh

App becomes unresponsive with 100% CPU usage. No information is printed to the server console.

epoll_ctl(5, EPOLL_CTL_DEL, 14, 0x7ffc18ebb4a0) = -1 EBADF (Bad file descriptor)
epoll_ctl(5, EPOLL_CTL_DEL, 23, 0x7ffc18ebb4ac) = -1 EBADF (Bad file descriptor)
epoll_wait(5, [{EPOLLIN|EPOLLERR|EPOLLHUP, {u32=14, u64=14}}, {EPOLLIN|EPOLLERR|EPOLLHUP, {u32=23, u64=23}}], 1024, 32575) = 2
clock_gettime(CLOCK_MONOTONIC, {83100, 957940084}) = 0
epoll_ctl(5, EPOLL_CTL_DEL, 14, 0x7ffc18ebb4a0) = -1 EBADF (Bad file descriptor)
epoll_ctl(5, EPOLL_CTL_DEL, 23, 0x7ffc18ebb4ac) = -1 EBADF (Bad file descriptor)
epoll_wait(5, [{EPOLLIN|EPOLLERR|EPOLLHUP, {u32=14, u64=14}}, {EPOLLIN|EPOLLERR|EPOLLHUP, {u32=23, u64=23}}], 1024, 32573) = 2

% time     seconds  usecs/call     calls    errors syscall
------ ----------- ----------- --------- --------- ----------------
 41.39    0.000466           0    743854    743854 epoll_ctl
 33.84    0.000381           0    371927           epoll_wait
 24.78    0.000279           0    371973           clock_gettime
------ ----------- ----------- --------- --------- ----------------
100.00    0.001126               1487754    743854 total

This happens already when closing the browser with the terminal open (Disconnect) on Ubuntu 16.04.
Funny enough, this doesn't seem to happen when using Safari as the browser... nor with Chrome when Cloud9 is running from a Mac. Windows host is untested.

cannot close opened image files

Dear Cloud9 maintainers:

If I opened an image file in editor, I can't close it anymore. Chrome console show below error messages:

image

This issue can be reproduced on master branch with latest Chrome 69, please refer to animated screenshot below, many thanks for your considerations:

1

Remove GNU make dependency from postinstall

As of moving to node-pty, the Windows native build of Cloud9v2 has become a low hanging fruit. Altought the npm i dependency installations are carried out successfully, the last step during postinstall fails due to reliance on GNU make. The Makefile targets are actually using simple unix shell commands.

Proposal is to migrate the required installation Makefile steps to build/postinstall.js and use shelljs commands as platform agnostic substitute.

which version node could work with 'terminal' branch?

Some guys saying node-0.8.8 is perfect version for cloud9.
I tried it with ajaxorg/cloud9, it works great.

But after I merge 'terminal' code for ajaxorg/cloud9.
I got below error:
uv.h: file not found.

I'm not sure which version nodejs should be used by 'terminal' code?
Any suggestions?

GET http://localhost:3131/static/ace/build/ace.js 404 (Not Found) Cloud9 v2

npm install really suck if your on the end of a wet string! So a couple of my installs just fail. Can not exactly see what is going wrong but it did kick some of my vagrant images filesystems into readonly mode(I think it is memory related).

I documented a example here of ace just being dodo:

https://gist.github.com/Morabaraba/51c6ac58218c58e5b9a4de13a7d3f9b6

I believe it is just a npm module dependency download that times out, and silently log the issue to some npm debug log I'm to stupid to find :P

Depreciation warnings when building PPC

The following depreciation warning are given:

(node:3341) [DEP0027] DeprecationWarning: util.puts is deprecated. Use console.log instead.
(node:3341) [DEP0013] DeprecationWarning: Calling an asynchronous function without callback is deprecated.

Using without Node

Hello there.
I would like to use the Cloud9 editor, I don't mind modifying it or writing plugins.
Can I use it without Node? If so, how?

Thanks in advance for any help.

Bye, Ivano.

Win 10 Edge support

This is more a fyi because it does not affect me. But I wanted to test the ctrl+v with edge and c9v2 does not seem to load.

HTML1300: Navigation occurred.
localhost:3131
Current window: localhost
SCRIPT65535: Invalid calling object
apf_release.js (39885,5)
SCRIPT438: Object doesn't support property or method 'getXmlDom'
apf_release.js (57982,17)
SCRIPT438: Object doesn't support property or method 'getXmlDom'
apf_release.js (57982,17)
SCRIPT438: Object doesn't support property or method 'getStyle'
apf_release.js (1168,9)
```

Is the js console output. I have the same instance open on chrome that is tip top!

Node 10.8, Ubuntu 16.04 - build failed

Having:

  1. Ubuntu 16.04 on EC2
  2. Node: 10, 9, 4
  3. build-essentials, g++, g++-4.9
  4. On the last phase of build we get:
> [email protected] postinstall /home/ubuntu/cloud9/cloud9/node_modules/gnu-tools
> node ./install.js

Creating directory  /home/ubuntu/cloud9/cloud9/node_modules/gnu-tools/bin
fs.js:135
    throw new ERR_INVALID_CALLBACK();
    ^

TypeError [ERR_INVALID_CALLBACK]: Callback must be a function
    at makeCallback (fs.js:135:11)
    at Object.mkdir (fs.js:711:16)
    at main (/home/ubuntu/cloud9/cloud9/node_modules/gnu-tools/install.js:28:12)
    at Object.<anonymous> (/home/ubuntu/cloud9/cloud9/node_modules/gnu-tools/install.js:228:5)
    at Module._compile (internal/modules/cjs/loader.js:689:30)
    at Object.Module._extensions..js (internal/modules/cjs/loader.js:700:10)
    at Module.load (internal/modules/cjs/loader.js:599:32)
    at tryModuleLoad (internal/modules/cjs/loader.js:538:12)
    at Function.Module._load (internal/modules/cjs/loader.js:530:3)
    at Function.Module.runMain (internal/modules/cjs/loader.js:742:12)

What should I do to overcome it?
Or can everyone show some box with successfully installed cloud 9 (packages, version numbers).

install help

Hi!
Can anyone help me with the install of Pylon? I can't manage to make it work :/

I'm trying to install pylon on Debian 9.9 (Strech). See the console response:

`npm WARN deprecated [email protected]: Old versions of Formidable are not compatible with the current Node.js; Upgrade to 1.2.0 or later
npm WARN lifecycle [email protected]install: cannot run in wd [email protected] node scripts/install.js (wd=/opt/bitnami/apache2/htdocs/pylon/node_modules/node-pty)
npm WARN lifecycle [email protected]
postinstall: cannot run in wd [email protected] node scripts/post-install.js (wd=/opt/bitnami/apache2/htdocs/pylon/node_modules/node-pty)

[email protected] postinstall /usr/lib/node_modules/pln
if [ -d 'node_modules/ace' ]; then cd node_modules/ace; else mkdir -p node_modules; ln -s ../../ace node_modules/ace; ln -s ../../treehugger node_modules/treehugger; cd ../a
ce; fi; make clean pre_build; ./Makefile.dryice.js minimal; cd ../..; make worker; if [ -L 'node_modules/ace' ]; then rm node_modules/ace; rm node_modules/treehugger; rmdir no
de_modules; fi
rm -rf build
rm: cannot remove 'build': Permission denied
Makefile:34: recipe for target 'clean' failed
make: *** [clean] Error 1
/opt/bitnami/apache2/htdocs/pylon/node_modules/architect-build/copy.js:121
throw e;
^
Error: EACCES: permission denied, open '/opt/bitnami/apache2/htdocs/pylon/node_modules/ace/lib/ace/snippets/apex.js'
at Object.openSync (fs.js:436:3)
at Object.writeFileSync (fs.js:1229:35)
at write (/opt/bitnami/apache2/htdocs/pylon/node_modules/architect-build/copy.js:110:16)
at Function.copy.file (/opt/bitnami/apache2/htdocs/pylon/node_modules/architect-build/copy.js:115:9)
at addSnippetFile (/opt/bitnami/apache2/htdocs/pylon/node_modules/ace/Makefile.dryice.js:611:14)
at /opt/bitnami/apache2/htdocs/pylon/node_modules/ace/Makefile.dryice.js:386:13
at Array.forEach ()
at buildAce (/opt/bitnami/apache2/htdocs/pylon/node_modules/ace/Makefile.dryice.js:384:15)
at main (/opt/bitnami/apache2/htdocs/pylon/node_modules/ace/Makefile.dryice.js:63:9)
at Object. (/opt/bitnami/apache2/htdocs/pylon/node_modules/ace/Makefile.dryice.js:678:5)
mkdir -p plugins-client/lib.ace/www/worker
mkdir: cannot create directory ‘plugins-client/lib.ace/www/worker’: Permission denied
Makefile:70: recipe for target 'plugins-client/lib.ace/www/worker/worker-language.js' failed
make: *** [plugins-client/lib.ace/www/worker/worker-language.js] Error 1`

My nodejs version is 12.2.0
My npm version is 6.9.0

Note: it is the first time I have tried some npm install. Sorry if my problem sounds a litte stupid.

There is some tutorial to install it? The instructions is too simple :/ on readme.

Thx in advance!

all opened terminal is removed when refresh/connection drops out

Spec

  • ubuntu 16.04 (with build-essential)
  • node 8.11.2 npm 6.1.0 ( have tested with node 8.9.4, 6.14.5, 5.12.0 as well! same error)
  • serving over nginx with https termination
  • command: bin/cloud9.sh -l 0.0.0.0 -p 8181 --username=foo --password=bar
  • using IDE from chrome 66 (win 10)
0|cloud9   |     at /home/anand/cloud9/plugins-server/cloud9.ide.terminal/tty.js:233:7
0|cloud9   |     at Array.forEach (<anonymous>)
0|cloud9   |     at Timeout._onTimeout (/home/anand/cloud9/plugins-server/cloud9.ide.terminal/tty.js:232:11)
0|cloud9   |     at ontimeout (timers.js:498:11)
0|cloud9   |     at tryOnTimeout (timers.js:323:5)
0|cloud9   |     at Timer.listOnTimeout (timers.js:290:5)
0|cloud9   | Error: Usage: pty.resize(fd, cols, rows)
0|cloud9   |     at UnixTerminal.resize (/home/anand/cloud9/node_modules/node-pty/lib/unixTerminal.js:213:13)
0|cloud9   |     at /home/anand/cloud9/plugins-server/cloud9.ide.terminal/tty.js:223:12
0|cloud9   |     at /home/anand/cloud9/plugins-server/cloud9.ide.terminal/tty.js:233:7
0|cloud9   |     at Array.forEach (<anonymous>)
0|cloud9   |     at Timeout._onTimeout (/home/anand/cloud9/plugins-server/cloud9.ide.terminal/tty.js:232:11)
0|cloud9   |     at ontimeout (timers.js:498:11)
0|cloud9   |     at tryOnTimeout (timers.js:323:5)
0|cloud9   |     at Timer.listOnTimeout (timers.js:290:5)
  1. Is it that node-pty did not compile properly? pty.resize(...) signature is not correct

node v10.13.0 not working: TypeError [ERR_INVALID_CALLBACK]: Callback must be a function

air:pylon d-_-b$ bin/pylon.sh -w $HOME/prj
make: Nothing to be done for `worker'.
OSX
connect plugin start
Connect server listening at http://localhost:3131
While starting the '/Users/d-_-b/prj/pylon/configs/default':
/Users/d-_-b/prj/pylon/server.js:117
	       throw err;
	       ^

TypeError [ERR_INVALID_CALLBACK]: Callback must be a function
    at makeCallback (fs.js:137:11)
    at Object.mkdir (fs.js:719:14)
    at Object.startup [as setup] (/Users/d-_-b/prj/pylon/plugins-server/connect.session.file/session-ext.js:15:12)
    at startPlugins (/Users/d-_-b/prj/pylon/node_modules/architect/architect.js:474:24)
    at startPlugins (/Users/d-_-b/prj/pylon/node_modules/architect/architect.js:482:21)
    at register (/Users/d-_-b/prj/pylon/node_modules/architect/architect.js:513:13)
    at Server.<anonymous> (/Users/d-_-b/prj/pylon/plugins-server/connect/connect-plugin.js:86:13)
    at Object.onceWrapper (events.js:273:13)
    at Server.emit (events.js:182:13)
    at emitListeningNT (net.js:1320:10)
air:pylon d-_-b$ node -v
v10.13.0

Gives the same error for v11.1.0 works great with v4.9.1.

Congrats on the name change!

Cloud9 upper right logo removal

Currently the Cloud9 logo is prominently displayed and part of the IDE in the upper right corner. This is not an issue on desktop, but on iPad, the logo distracts the editing experience.

Some thoughts:

  • Remove the logo, leave the status led in a smaller rounded corner in the upper right. This will still provide the visual cue for save status and offline indication
  • In the future, the status led could be changed further into a square design and be part of the blue upper blue ribbon meshing into the overall design of the IDE, thus providing more distraction-less editing view.

To remove the logo:

  • change css in ext.main/style/skins.xml
  • edit c9-no-repeat.png to reduce the rounded corner

Where can i find terminal?

Hi,

I am new in cloud9 and i installed this version with terminal support. But i don't see tab "terminal". How can i activate it?

I see that terminal started

IDE server initialized. Listening on localhost:3131
[tty.js] Only accepting local connections.
[tty.js] Cloud9 terminal started, serving requests on port: 3131
[tty.js] 127.0.0.1 Session 127.0.0.1|Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/36.0.1985.125 Safari/537.36 created.

Thanks

Installation as a npm package fails

Installation of Pylon as a npm package fails due to the postinstall step and the different location of ace editor:

> [email protected] postinstall /Users/xxx/Projects/pylon_npm/node_modules/pln
> cd node_modules/ace; make clean pre_build; ./Makefile.dryice.js minimal; cd ../..; make worker

sh: line 0: cd: node_modules/ace: No such file or directory

Does not work behind ssl reverse proxy

Configuring Cloud9 to work behind ssl reverse proxy (e.g. nginx) produces the following:

c9_ssl_nginx

  1. Mixed content due to unsecured websocket connection ws:// (engine.io <-- tty)
  2. Invalid smith.io-ide requests (using the backend service port)

Discovered with 'origin/feature/connect-3.x'

setting breakpoint in editor window will confuse text input

Dear cloud9 maintainers,

If I open a file from IDE and click to set a breakpoint on any line, the text input will be messed and no longer work, I have to close the file and reopen it to make it work again. This issue can be reproduced on latest Chrome 69. Chrome console show below error messages. Is this a known issue of the IDE?

1

Below is a screenshot of the issue, thanks for your notice:

1

iPad Pro basic compatibility

Ace has greatly improved the compatibility with iPad Pro devices with external keyboard:

Both of these additions are included in the v1.2.8 of Ace. It's, time to see if compatibility can be improved for cloud9 to make it usable with iPad.

Known issues:

  • file browser is not scrollable
  • opening a file with double-click
  • screen size is too big (can we scale back a notch?)
  • hardware keyboard does not work, due to not using default keyboard handler of ace
  • disable overscroll
  • investigate momentum scrolling for editor and tree view
  • full screen mode aka app-capable
  • terminal window does not accept space character 😕
  • arrows don't work in terminal

Change to xterm.js v3 branch

xterm.js v3 introduces considerable interface changes. Prior to tackling #36 it makes sense to align to v3 branch of xterm.js

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.