Skip to content

Frequently Asked Questions

wnadeau edited this page Dec 31, 2011 · 28 revisions

Frequently Asked Questions (FAQ)

General questions

I'm on a free account. Are my FTP projects accessible to the public or other Cloud9 IDE users?
No. For both Free and Premium accounts FTP projects are always private. You are the only one that has access to them.

Why do you have two issue trackers for Cloud9?
The Cloud9 project comes in two flavors: locally-hosted and in the cloud. The Github issue tracker is used for the locally-hosted version and Zendesk is used for the cloud version.

Do you have plans for support of a PHP PaaS, such as Orchestra IO or PHPFog
Yes, there are plans of short/medium-term integration of PHP (with debugger), specially targeting one or several of the most popular PHP cloud-based platforms.

IDE questions

**I want to build an extension myself, where do I start?**
There's a template on the Cloud9 IDE repository if you wish to start developing a new extension. See the Wiki page about [3rd party extensions](https://github.com/ajaxorg/cloud9/wiki/List-of-3rd-party-extensions).

How do I enable VIM keyboard bindings?
We haven't yet ported these, but when we do we'll also build keybinding for other known projects. env.editor.setKeyboardHandler(require("ace/keyboard/keybinding/vim").Vim)

Where can I find the default keybindings and hot keys?
You can find them in client/ext/keybindings_default

Can I upload non-ascii files to my projects, such as images and other binary files?
For now, HTML5 drag and drop API doesn't fully work with Cloud9, but you can upload images in some other ways.

The first and most common way is to develop your project using an FTP connection. However, since this is not always the case you can also send a request to the running jsDav server under your project's workspace URL. An example of sending a PUT request to the jsDav server would be:

curl -X PUT http://c9.io/your_user/your_project/workspace/image.png --header "Content-type: image/png" --header "Cookie: c9.devel.sid=YOUR_SID_HASH" --data-binary @image.png

Technical questions

**I can't find any extension to do X or Y, can you implement it on the IDE?**
Due to the nature of our releases, we are currently very focused on developing the most important features for the editor, in order give every user the best experience that an online IDE can offer. However, Cloud9 IDE is very flexible and provides an array of tools such as NPM; the Node Package Manager. Often finding or writing scripts to perform specific tasks is a very simple process:
  • Use the console to install a NPM package that suits your needs
  • Build a simple runner file to compile or execute or debug your code

Here's an example of installing uglify-js to obfuscate JavaScript code.

Cloud9 does not support MySQL or any other type of Database system, what should I do?

Database support in our Run VMs is not implemented yet. We strongly advise you to host your databases in either your own local machine, or a remote server.

How can I push changes directly from Cloud9 IDE to Heroku?

Heroku deployments are as natural as "git push". However, there are a couple of things to bare in mind when uploading changes to your Heroku apps:

  • First, a bare git push won't do it. Heroku revokes tree changes which aren't updated to the latest commit. For this reason Heroku imposes the use of 'master' branch for deployments.
  • Secondly, Heroku git remotes are a must when performing a git push command; to create a new deployment (hence adding a remote), click on the panel "Deploy" on the left sidebar of the IDE. This is the easiest way to deploy to Heroku. Also, typing git remote show in the console, will display your heroku_* git remotes after having created a new deploy target through the UI. If you decide to manually set this up, you might want to run a command such as git remote add my_heroku_remote git_url

Finally, if you aren't using the UI to deploy, you may run this command to upload the latest version of your app:

git push my_heroku_remote master

If you are working on a branch different from 'master', do not forget to merge your changes into it before pushing!