Giter Site home page Giter Site logo

c9 / core Goto Github PK

View Code? Open in Web Editor NEW
2.6K 172.0 923.0 35.39 MB

Cloud9 Core - Part of the Cloud9 SDK for Plugin Development https://c9.github.io/core/ https://c9.io

License: Other

JavaScript 89.02% Shell 0.27% HTML 4.56% CSS 1.20% TypeScript 0.01% Go 0.01% PHP 0.02% Ruby 0.03% Batchfile 0.02% Python 0.07% CoffeeScript 0.01% Less 4.81% Vim Snippet 0.01%

core's People

Contributors

abailiss avatar alperozisik avatar basdewachter avatar bradydowling avatar c9bot avatar c9jenkinsv3 avatar chrisb-fico avatar danaiv avatar danieldibe avatar dmalan avatar fjakobs avatar gergely-marko avatar invokr avatar jdloft avatar jumbojett avatar justin8 avatar lennartcl avatar mutahhir avatar mvhenten avatar nightwing avatar nonken avatar ozcanovunc avatar pleshevskiy avatar ragnargrootkoerkamp avatar serkanserttop avatar shadowcodex avatar thegecko avatar timjrobinson avatar xiemaisi avatar xoob 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  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

core's Issues

Nothing happens when lauching install-sdk.sh

Hello,

When I launch install-sdk.sh, nothing happens. I tried to see where the script is hanging, and it's on the line "git fetch c9".
EDIT : I tried to wait for a long time, and here it is :

error: Failed connect to github.com:443; Connection timed out while accessing https://github.com/c9/core/info/refs
fatal: c9/master - not something we can merge
Couldn't automatically update sdk core

typescript builder path/file

Using the TS builder, the generated JS for a file 'foo.ts' is 'foo/.js' whereas one would expect it to be 'foo.js'

Not sure if this is a bug. If it is , please remove the slash. If not, please can I get a pointer to the default TS builder so I can use it to create my own.

Require(node module) for plugin development

I am currently developing a plugin which reads in code and perform some customized syntax analysis.

I was trying to use 'esprima' and 'escope' for my plugin to convert code to AST and then perform scope analysis. Just wondering is there any ways that I could require external node modules like 'esprima' or 'escope' in my plugin? Because currently, it seems the plugin only have access to all sorts modules provided by other plugins.

User specific settings?

Hello,

I understand if I install it on my server if I have 5 people using it, at least as far as C9 is concerned all 5 of those people are the same user.

I'm wondering if there is a way to have one install, but 5 users?

installation error : pty.js

An error was ment when I installed c9 core, the pty.js can't be installed successfully

> [email protected] install /home/vagrant/cloud9/node_modules/pty.js
> node-gyp rebuild

gyp WARN install got an error, rolling back install
gyp ERR! configure error 
gyp ERR! stack Error: node-v0.10.36.tar.gz local checksum deb28b6c1e92f278e3f02e2d427d3fcd996e52b06dd0e0ad3ddc5d4a6a3dcc90 not match remote b9d7d1d0294bce46686b13a05da6fc5b1e7743b597544aa888e8e64a9f178c81
gyp ERR! stack     at deref (/usr/local/lib/node_modules/npm/node_modules/node-gyp/lib/install.js:299:20)
gyp ERR! stack     at IncomingMessage.<anonymous> (/usr/local/lib/node_modules/npm/node_modules/node-gyp/lib/install.js:340:13)
gyp ERR! stack     at IncomingMessage.emit (events.js:117:20)
gyp ERR! stack     at _stream_readable.js:944:16
gyp ERR! stack     at process._tickCallback (node.js:442:13)
gyp ERR! System Linux 3.2.0-23-generic-pae
gyp ERR! command "node" "/usr/local/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js" "rebuild"
gyp ERR! cwd /home/vagrant/cloud9/node_modules/pty.js
gyp ERR! node -v v0.10.36
gyp ERR! node-gyp -v v1.0.1
gyp ERR! not ok 
npm WARN engine [email protected]: wanted: {"node":">= 0.6.0 && < 0.9.0"} (current: {"node":"0.10.36","npm":"1.4.28"})
npm WARN optional dep failed, continuing [email protected]

nodejs : v0.10.36
npm: 1.4.28
python2.7
tmux installed

Problem with sqlite3 in installation

> [email protected] install /home/home/.c9/node_modules/sqlite3
> node build.js

[sqlite3]: Checking for http://node-sqlite3.s3.amazonaws.com/Release/node_sqlite3-v2.1.a-node-v11-linux-arm.tar.gz
[sqlite3]: http://node-sqlite3.s3.amazonaws.com/Release/node_sqlite3-v2.1.a-node-v11-linux-arm.tar.gz not found, falling back to source compile (Error: Server returned 404)

Sorry for short Issue i speak little english ( but i love this project <3 )

License change

It's obvious you guys have abandoned the GPLv3 license. Are you sure there is no code from v2 that was contributed by developers outside of your company under GPLv3. If so, then that would void your license, would it not?

Plugin-Manager showing up empty

Some of the internal plugins see to incorrectly remove themselves from the core.ext extension, which leads to the Plugin-Manager showing up empty.
The "crash" occurs when invoking lut[plugin.name] in c9.ide.plugins/manager.js on line 396.

I added the following code to c9.ide.plugins/manager.js:

if (typeof(lut[plugin.name]) != "undefined") {
    package.items.push({
    ...
    });
} else {
    console.log("UNDEFINED PACKAGE NAME", plugin.name, lut);
}

Which produces the following result.

console

I can't reliably reproduce the error but I guess it has something to do with the following line being commented out: // plugins.splice(plugins.indexOf(plugin), 1); in c9.core/ext.js.

Support Raspberry Pi-2

Your beautiful IDE runs now on my Pi-2. Building it needed some little modifications in the installer scripts, because Pi-2 comes with ArmV7 and the scripts only support armv6.

Installed plugin is called "token"

When I make my first plugin, the name in the list comes out to be "token" rather than "myplugin". When I double click "token" and reveal what's in it, it shows "myplugin".

VFS Exception in function 'tmux'

hi, I installed c9 core, but I got some undefined exception like below after I started it.

VFS Exception in function 'tmux':
undefined
Scheduling process exit
Exiting after uncaught exception in 'tmux':
undefined
destroying because of error undefined
VFS connection does not exist

I don't know what the problem mean. It seems to be some problem for the ”tmux“?

thanks

configure: error: "curses not found"

configure: error: "curses not found" when installing on centos 7. Is this a known issue?

[root@play c9sdk]# rpm -qa|grep curse
ncurses-libs-5.9-13.20130511.el7.x86_64
ncurses-5.9-13.20130511.el7.x86_64
ncurses-devel-5.9-13.20130511.el7.x86_64
ocaml-curses-1.0.3-17.el7.x86_64
ncurses-base-5.9-13.20130511.el7.noarch
ocaml-curses-devel-1.0.3-17.el7.x86_64
is installed.

[FEATURE]Custom code snippets

Would it be possible to ad a feature where you can add your own code snippets? If thats already don and I just can't figure out how to use it would it be possible to have those code snippets be able to be put into three catigories, Local Progect, Language based and public.

If a snippit is local, it will only show up in that progect.
If it is Language, it will show only in code of the same type
public is seen by all your progects.

Collab asks for c9.api

{ [Error: Can't find './c9.api/ping.js' relative to '/root/c9sdk/plugins'] code: 'ENOENT' }

Seems like there are still some files missing to run collab?

Language worker problem

I have a c9 installed on a raspberry pi 2 with an ubuntu 14.04 image , all is working except for the language worker problem.

The console output is :
Language worker could not be loaded; some language features have been disabled

Tried to solve with :
sudo update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8

But with no hope

How to activate menu "git add" in terminal ?

Could you tell me how to activate the "git add" menu in terminal on a local installation of cloud9.

I saw feature is in plugin c9.ide.terminal/link_handler.js, which is not 'required' by my installation.

I failed to clearly understand how to add plugins.
Thanks for your help.

Password

How can i protect my workspace with a password?
thx!

The number of lines of the Output and Terminal panes are not configurable

I am unable to find a configuration setting to define the number of lines defines for the Output and terminal panes,
As of today, it seems to be limited around 500 lines. Is there an hidden configuration for that, or is it missing?
Anyway, a user should be able to modify the amount of lines in those panes.

Cannot find module

$ node server.js
Error: Cannot find module '../plugins/c9.ide.run/runners_list'

Problem with terminal on nodejs v0.12.0

I've updated nodejs 0.12.0 from latest official packages. I cleaned up install directory and replaced it running a new installation from scratch.
Installation succeeded, but now terminal isn't loaded and shows only a square char.

Workspace not loading

I did
git clone [email protected]:c9/core.git c9sdk
cd c9sdk
scripts/install-sdk.sh

on visiting http://0.0.0.0:8181 the workspace isn't loading
I get an error:

{ [Error: ENOENT, no such file or directory '/home/anupbiswal/.c9/user.settings']
errno: 34,
code: 'ENOENT',
path: '/home/anupbiswal/.c9/user.settings',
syscall: 'open' }
{ [Error: ENOENT, no such file or directory '/home/anupbiswal/Projects/open_source/c9sdk/.c9/project.settings']
errno: 34,
code: 'ENOENT',
path: '/home/anupbiswal/Projects/open_source/c9sdk/.c9/project.settings',
syscall: 'open' }
{ [Error: ENOENT, no such file or directory '/home/anupbiswal/Projects/open_source/c9sdk/.c9/state.settings']
errno: 34,
code: 'ENOENT',
path: '/home/anupbiswal/Projects/open_source/c9sdk/.c9/state.settings',
syscall: 'open' }

Having no clue I created those settings file manually in the desired locations now the error is gone BUT I am still not able to see my workspace loaded

I think I am missing something. Can somebody help here.

Terminal Not Working

I have a mostly working version of c9sdk inside a Docker container, running with an nginx front end to implement ssl. Most everything works, except for the terminal. The terminal window opens to a blank screen with the tab flashing repeatedly between the "x" and a thinking circle.

The javascript console log shows hundreds of "Disregard terminal: devel_604" in tmux_connection.js line 202. This number increases rapidly whenever a terminal window is open. This is true on Chrome, Safari, and Firefox

The strange thing is that sometimes when I change my home or workspace directories, it suddenly works, but not consistently. For example, I changed my home and workspace directories to /workspace and it worked, I changed them back to the default (/ and /c9) and it didn't work, then I changed them back to /workspace and it still didn't work. No change other than the home and workspace directories were made.

Any thoughts as to where to track this down?

Ordering of items in Preferences has some issues

via the mailinglist: https://groups.google.com/forum/#!topic/cloud9-sdk/cNAQ8imFDVo

When I did that, I discovered that the Settings / Run section position values are invalid. For example Settings / Run / Build is "undefined400". The Run section preferences are specified in a few plugins. [I cannot find the code in c9/core, so I'll reference c9/c9v3.]

plugins/c9.ide.run.build/build.js#L68

"Run" has no position property. Adding a position value might fix the problem.

plugins/c9.ide.preview/preview.js#L118

Here Run does have a position property of 600?

Perhaps build.js is loading before preview.js, and there is a bug is the preference code that does not handle undefined positions.

This problem is also causing my plugins preference controls to show up out of order (between Run / Build and Run / Run & Debug) in the main control area. Though, the order in the narrow menu on the left is fine.

Problem WebSocket

I wrote a plugin (and put it in ~/.c9/plugin/plugin-name) with following code:

var WebSocket = require('ws')
  , ws = new WebSocket('ws://mylocalipaddress:8090/');
ws.on('open', function() {
    ws.send('something');
});
ws.on('message', function(message) {
    console.log('received: %s', message);
});

On localhost I have a server listening on port 8090

var WebSocketServer = require('ws').Server
  , wss = new WebSocketServer({port: 8090});
wss.on('connection', function(ws) {
    ws.on('message', function(message) {
        console.log('received: %s', message);
    });
    ws.send('something');
});

When I try to load the IDE at

http://localhost:8186/ide.html?sdk=1?debug=2

It loads only IDE but not the plugin and my server doesn't receive any data.

If I try the same code in a client loaded in a different container it works perfectly.

Thanks

Dynamic less library in packed mode

My workspace panel doesn't appear anymore.
install-sdk and reset preferences don't change anything.

The console displays :

Can't add dynamic less library in packed mode!

LESS code trying to added starts with

.panelsbutton{
                padding : 10px 10px 6px 10px;
                display : inline-block;
                white-space: nowrap;
                cursor : default;

                margin-left : -1px;
                margin-right : 2px;
                font-family: Helvetica, Arial;
                font-size: @general-font-size;
                color : @panel-button-color;
                text-shadow: @panel-button-text-shadow;

                .transform(rotate(180deg));

                height : 18px;
            }

I don't set packed option but this var is true anyway.
I saw that it is defined by style.css length
So after empty plugins/c9.ide.ui/style.css, left panel appears.

How to setup workspaces navigation?

Love the C9 hosted solution and wanted to try using it with some of our private VPC servers. Installed the local version and was up and running for anything on my drive by launching the editor for the proper workspace.

Now though, I'd like to use the ssh option to mount into our remote servers (private cloud, so no public access that I can use :( ) and can't figure it out.

Also, would be nice to not have to restart C9 from the command line every time to switch projects. I'm sure this can be done since projects like the BeagleBone Black are using C9, but not finding it.

Any pointers? Did I miss the docs someplace?

Any trick to speed up installation?

I tried installing on an Ubuntu 14.04 VM the other day, the install script worked well and I was able to get everything working. But it was painfully slow... is there something I could do to speed things up? Any plan to have Docker images maybe?

File tree view duplicates some files seemingly randomly

Disclaimer: Actual files are not duplicated, just visually in the file tree. (as can be seen from the console output in the screenshot)

http://i.imgur.com/lmG2wde.png

I have no idea what causes this or how to trigger it, it seems rather random. Selecting one of those duplicated items even highlights all of them. Refreshing the file tree does not remove the problem, neither does refreshing the browser tab or even restarting the node process.

I removed my .c9 folder and deleted all cookies. Now it seems fine again for now.

Also, this was under Favorites, not the normal file tree.

Browser: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:35.0) Gecko/20100101 Firefox/35.0

c9/core: be54b38
OS: Linux debian-virt 3.2.0-4-amd64 #1 SMP Debian 3.2.65-1+deb7u1 x86_64 GNU/Linux ( not the browser though, that is running on win7)
Node.js: v0.10.36

Any other info I can provide?

License conflicts make it illegal to run c9/core with its AGPL dependencies

Hi c9,

The license you've chosen for c9/core makes it illegal to run this software (even for non-commercial purposes). If we combine your c9/core code and your AGPL dependencies and then provide access to the combined program over a network, we are violating section § 5.c of the AGPL which states that we must provide the source code of the combined program under the AGPLv3 or GPLv3 license. Your license has additional restrictions which mean that we can't do so.

Note that the FSF believes this applies to plugins like the c9.ide.* libraries: http://www.gnu.org/licenses/gpl-faq.html#NFUseGPLPlugins

Presumably this doesn't affect you because as copyright holders of the AGPL libraries, you can give yourself whatever permissions you like to run with a closed source c9/core. But to the rest of us, having access to the source of c9/core isn't very helpful without the permission to legally use it.

Best,
Alex Ogier

Stuck on "Loading Your Workspace" splash screen

I have the core installed on a Fedora server. The app runs, and I can bring up the website - however it just sits on the "Loading your workspace" splash screen. There are no errors on the console. Any suggestions, or is there a log somewhere I can take a look at to see what it is hanging on?

  • Using node v0.10.37
  • node /usr/share/c9sdk/server.js -a user:password -p 3131

Problem with installation

Hi,

I followed the howto in readme in order to install the core
I have a problem when I run

node server.js

The command doesn't show any error and nothing happens

Proposal for wrapper around AceTree

/*global main, imports*/
var Plugin = imports.Plugin;

var Tree = imports.Tree;
var List = imports.List;
var Datagrid = imports.Datagrid;

var plugin = new Plugin("Ajax.org", main.consumes);

// Illustration
var container = document.createElement("div");

// A list
var myList = new List({
    container: container,

    // # Properties
    emptyMessage: "No items found",
    scrollMargin: [0, 10],
    rowHeight : 25,
    rowHeightInner : 25,
    theme: "mylist",

    animatedScroll: true,
    enableDragdrop: true,
    enableRename: true,
    maxLines: 10,
    minLines: 10,
    scrollSpeed: 2,
    wrapAround: true

    // # Route Methods
    // isLoading: function(){},
    // getEmptyMessage: function(){},
    // renderRow: function(){},
    // sort: function(children, compare){},
    // getClassName: function(){},
    // getIndex: function(){}, // Preserves selection when doing setRoot()
}, plugin);

// # myList has the following available:
// 
// # Methods
//     setRoot: function(root){}
//     resize: function(force){}
//     select: function(node){}
//     select: function(nodeList){}
//     focus: function(nodeList){}
//     setScrollTop: function(nodeList){}
//     startRename: function(node){}
//     execCommand: function(cmd){}
//     scrollIntoView: function(node, float_where_on_page)
//     enable: function(){}
//     disable: function(){}
//     getNodeAtIndex: function(idx){}
//     getIndexForNode: function(node){}
// 
// # Property Getters
//     selectedNodes: function(){}
//     selectedNode: function(){}
//     root: function(){}
//     scrollTop: function(){}
//     focussed: function(){}
//     container: function(){}
// 
// # Property Objects
//     textInput: tree.textInput,
//     renderer: tree.renderer
//     selection: tree.selection
//     commands: tree.commands
//     model: tree.model
// 
// # Events
//     click: click
//     drop: drop
//     dragIn: dragIn
//     dragOut: dragOut
//     dragMoveOutside: dragMoveOutside
//     folderDragLeave: folderDragLeave
//     folderDragEnter: folderDragEnter
//     drop: drop
//     dropOutside: dropOutside
//     userSelect: userSelect
//     afterChoose: afterChoose
//     delete: delete
//     beforeRename: beforeRename
//     afterRename: rename
//     select: changeSelection
//     select: selection.change
//     scroll: provider.changeScrollTop
//     scrollbarVisibilityChanged: renderer.scrollbarVisibilityChanged
//     resize: renderer.resize

// A tree
var myTree = new Tree({
    // # Adds Properties
    indentSize: 12,

    // # Adds these Route Methods
    // getContentHTML: function(){}, 
    // getCaptionHTML: function(){}, 
    // getIconHTML: function(){} 
    // hasChildren: function(){} 
    // getChildren: function(){} 
    // loadChildren: function(){} 
    // shouldLoadChildren: function(node){} 
}, plugin);

// # myTree adds the following:
// 
// # Methods
//     toggle: function(node){}
//     open: function(node){}
//     close: function(node){}
//     isOpen: function(node){}
//     isVisible: function(node){}
//     getNodePosition: function(node){}
// 
// # Events
//     expand: provider.expand // Unique
//     collapse: provider.collapse // Unique

// A tree
var myDatagrid = new Datagrid({
    // # Adds Properties
    theme: "blackdg", // Default

    // # Columns
    columns : [
        {
            caption: "Property",
            value: "name",
            defaultValue: "Scope",
            width: "40%",
            icon: "debugger/genericvariable_obj.gif",
            type: "tree"
        }, 
        {
            caption: "Value",
            value: "value",
            width: "60%",
            editor: "textbox" 
        }, 
        {
            caption: "Type",
            value: "type",
            width: "55"
        },
        {
            caption: "CPU",
            getText: function(node) { return node.cpu + "%"; },
            width: "50",
        }
    ],
}, plugin);

// # myDatagrid adds the following:
// 

Remarks

Collab has some issues

When i enable --collab it seems that it tries to connect to api.c9.dev (cool domain!) and it fails with the below console output :

Failed to load resource: net::ERR_CONNECTION_CLOSED
https://api.c9.dev/collab/0/access_info?access_token=token Failed to load resource: net::ERR_SSL_PROTOCOL_ERROR
default.js:16397 Collab not connected - SKIPPING Object
default.js:16397 Collab not connected - SKIPPING Object
default.js:16313 [OT] Collab connect timed out ! - retrying ...
default.js:16304 Collab connecting
default.js:16320 COLLAB CONNECT ERR Object
default.js:151130 GET https://api.c9.dev/collab/0/access_info?access_token=token net::ERR_SSL_PROTOCOL_ERROR
default.js:151130 GET https://api.c9.dev/collab/0/access_info?access_token=token net::ERR_CONNECTION_CLOSED
default.js:151130 GET https://api.c9.dev/collab/0/access_info?access_token=token net::ERR_SSL_PROTOCOL_ERROR

The --collab feature also interferes with the file save process and slows it down severely.
When start it without --collab it runs smoothly with no console errors

pty.js error

Hi, sorry for my bad english, i am from Spain.
My nodejs -v is 0.10.37 and npm -v 1.4.28

Installation fails here:

node-gyp rebuild

make: Entering directory '/home/pi/c9/c9sdk/node_modules/pty/node_modules/pty.js/build'
CXX(target) Release/obj.target/pty/src/unix/pty.o
/usr/bin/g++: 1: /usr/bin/g++: Syntax error: "(" unexpected
pty.target.mk:82: recipe for target 'Release/obj.target/pty/src/unix/pty.o' failed
make: *** [Release/obj.target/pty/src/unix/pty.o] Error 2
make: Leaving directory '/home/pi/c9/c9sdk/node_modules/pty/node_modules/pty.js/build'
gyp ERR! build error
gyp ERR! stack Error: make failed with exit code: 2
gyp ERR! stack at ChildProcess.onExit (/usr/lib/node_modules/npm/node_modules/node-gyp/lib/build.js:267:23)
gyp ERR! stack at ChildProcess.emit (events.js:98:17)
gyp ERR! stack at Process.ChildProcess._handle.onexit (child_process.js:820:12)
gyp ERR! System Linux 3.18.7-v7+
gyp ERR! command "node" "/usr/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js" "rebuild"
gyp ERR! cwd /home/pi/c9/c9sdk/node_modules/pty/node_modules/pty.js
gyp ERR! node -v v0.10.37
gyp ERR! node-gyp -v v1.0.1
gyp ERR! not ok

Can you help me please?

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.