coffutt / atom-jsdoc Goto Github PK
View Code? Open in Web Editor NEWJSDoc hot key for atom editor.
License: MIT License
JSDoc hot key for atom editor.
License: MIT License
I am trying to install the package and getting an error
Right now, if I insert a comment before a method, such as:
Cat.prototype.showBreedsList = function(aOutputStream) {
}
it gives a verbose output, such as:
/**
* Cat.prototype.showBreedsList - description
*
* @param {type} aOutputStream description
* @return {type} description
*/
It would be nice if the template for this was configurable, so that I don't have extra stuff being inserted that I don't need.
Default jsdoc
ctrl-shift-D conflicts Core editor:duplicate-lines
hotkey.
http://i.imgur.com/JqDfwt9.png
Use activationCommands
instead of activationEvents
in your package.json
Commands should be grouped by selector as follows:
"activationCommands": {
"atom-workspace": ["foo:bar", "foo:baz"],
"atom-text-editor": ["foo:quux"]
}
Package.getActivationCommands (/Applications/Atom.app/Contents/Resources/app.asar/src/package.js:806:9)
Package.hasActivationCommands (/Applications/Atom.app/Contents/Resources/app.asar/src/package.js:731:20)
<unknown> (/Applications/Atom.app/Contents/Resources/app.asar/src/package.js:185:24)
Package.measure (/Applications/Atom.app/Contents/Resources/app.asar/src/package.js:163:15)
Package.load (/Applications/Atom.app/Contents/Resources/app.asar/src/package.js:177:12)
PackageManager.loadPackage (/Applications/Atom.app/Contents/Resources/app.asar/src/package-manager.js:355:14)
If i have a comment like this:
/**
* <cursor positioned here>
If i have my cursor position as in my code above and I hit enter, the comment does NOT continue.
I get this warning:
atom.workspaceView is no longer available. In most cases you will not need the view. See the Workspace docs for alternatives: https://atom.io/docs/api/latest/Workspace. If you do need the view, please use atom.views.getView(atom.workspace), which returns an HTMLElement.
Called 1 timeCreate Issue on jsdoc repo
Atom.Object.defineProperty.get - /usr/share/atom/resources/app/src/atom.js:54:11
Object.activate - /home/bprosnitz/.atom/packages/jsdoc/lib/jsdoc.js:124:13
$ apm install jsdoc
No available version compatible with the installed Atom version: 1.2.4
atom.workspaceView is no longer available.
In most cases you will not need the view. See the Workspace docs for
alternatives: https://atom.io/docs/api/latest/Workspace.
If you do need the view, please use atom.views.getView(atom.workspace)
,
which returns an HTMLElement.
Atom.Object.defineProperty.get (/Applications/Atom.app/Contents/Resources/app/src/atom.js:54:11)
Object.activate (/Users/framerate/.atom/packages/jsdoc/lib/jsdoc.js:124:13)
It doesn't work under MacOSX since it has been changed to ctrl+shift+d.
Worked perfectly with ctrl+c before.
I just downgraded to 0.3.0 to get the old mapping.
apm install [email protected]
Is it possible to disable the atom autocomplete while writing the doc block? I am writing the description of a class or of a parameter and atom keeps suggesting me autocompletions of variable names hence messing with my capitalization of things, etc.
The module is unable to do its job with this line:
Application.prototype.addCommand = function(command)
It should at least give me:
/**
* description
*
* @param {type} command description
* @return {type} description
*/
And ideally:
/**
* Application.addCommand - description
*
* @param {type} command description
* @return {type} description
*/
[Enter steps to reproduce below:]
Atom Version: 0.176.0
System: Mac OS X 10.9.5
Thrown From: jsdoc package, v0.7.0
Uncaught TypeError: Cannot read property 'getCursorBufferPosition' of undefined
At /Users/apobbati/.atom/packages/jsdoc/lib/jsdoc.js:85
TypeError: Cannot read property 'getCursorBufferPosition' of undefined
at atom-workspace.module.exports.writeBlock (/Users/apobbati/.atom/packages/jsdoc/lib/jsdoc.js:85:43)
at atom-workspace.handler (/opt/homebrew-cask/Caskroom/atom/latest/Atom.app/Contents/Resources/app/src/space-pen-extensions.js:115:32)
at atom-workspace.jQuery.event.dispatch (/opt/homebrew-cask/Caskroom/atom/latest/Atom.app/Contents/Resources/app/node_modules/space-pen/vendor/jquery.js:4681:9)
at atom-workspace.elemData.handle (/opt/homebrew-cask/Caskroom/atom/latest/Atom.app/Contents/Resources/app/node_modules/space-pen/vendor/jquery.js:4359:46)
at CommandRegistry.module.exports.CommandRegistry.handleCommandEvent (/opt/homebrew-cask/Caskroom/atom/latest/Atom.app/Contents/Resources/app/src/command-registry.js:243:29)
at /opt/homebrew-cask/Caskroom/atom/latest/Atom.app/Contents/Resources/app/src/command-registry.js:3:61
at CommandPaletteView.module.exports.CommandPaletteView.confirmed (/opt/homebrew-cask/Caskroom/atom/latest/Atom.app/Contents/Resources/app/node_modules/command-palette/lib/command-palette-view.js:120:32)
at CommandPaletteView.module.exports.SelectListView.confirmSelection (/opt/homebrew-cask/Caskroom/atom/latest/Atom.app/Contents/Resources/app/node_modules/go-to-line/node_modules/atom-space-pen-views/lib/select-list-view.js:336:21)
at space-pen-div.atom.commands.add.core:confirm (/opt/homebrew-cask/Caskroom/atom/latest/Atom.app/Contents/Resources/app/node_modules/go-to-line/node_modules/atom-space-pen-views/lib/select-list-view.js:109:19)
at CommandRegistry.module.exports.CommandRegistry.handleCommandEvent (/opt/homebrew-cask/Caskroom/atom/latest/Atom.app/Contents/Resources/app/src/command-registry.js:243:29)
at /opt/homebrew-cask/Caskroom/atom/latest/Atom.app/Contents/Resources/app/src/command-registry.js:3:61
at KeymapManager.module.exports.KeymapManager.dispatchCommandEvent (/opt/homebrew-cask/Caskroom/atom/latest/Atom.app/Contents/Resources/app/node_modules/atom-keymap/lib/keymap-manager.js:558:16)
at KeymapManager.module.exports.KeymapManager.handleKeyboardEvent (/opt/homebrew-cask/Caskroom/atom/latest/Atom.app/Contents/Resources/app/node_modules/atom-keymap/lib/keymap-manager.js:396:22)
at HTMLDocument.module.exports.WindowEventHandler.onKeydown (/opt/homebrew-cask/Caskroom/atom/latest/Atom.app/Contents/Resources/app/src/window-event-handler.js:170:20)
6x -0:17.5 core:undo (atom-text-editor.editor)
6x -0:15.4 core:select-up (atom-text-editor.editor)
-0:14.4 editor:select-to-first-character-of-line (atom-text-editor.editor)
2x -0:14.2 core:backspace (atom-text-editor.editor)
-0:13.6 core:move-down (atom-text-editor.editor)
-0:12.5 core:backspace (atom-text-editor.editor)
-0:12.2 core:save (atom-text-editor.editor)
-0:11.8 core:backspace (atom-text-editor.editor)
-0:08.4 core:save (atom-text-editor.editor)
-0:06.6 click (div.title.icon.icon-tools)
-0:05.7 core:close (div.settings-view.pane-item)
-0:04.9 click (div.close-icon)
-0:03.8 command-palette:toggle (ul.list-inline.tab-bar.inset-panel)
-0:01.2 core:move-down (atom-text-editor.editor.mini)
-0:00.9 core:confirm (atom-text-editor.editor.mini)
-0:00.9 jsdoc:block (ul.list-inline.tab-bar.inset-panel)
{
"core": {
"disabledPackages": [
"vim-mode"
]
}
}
# User
Stylus, v0.4.0
atom-beautify, v0.21.2
color-picker, v1.4.4
dart-tools, v0.8.5
emmet, v2.3.2
go-format, v1.0.7
jsdoc, v0.7.0
language-dart, v0.1.1
language-rust, v0.3.5
language-scala, v1.1.0
linter, v0.10.1
linter-jscs, v1.4.9
linter-jshint, v0.1.0
raml, v0.1.0
# Dev
No dev packages
/cc @atom/core
When I search for this package in atom, I can't find it. I can find it at https://atom.io/packages/jsdoc in my web browser but when I go to install it in atom it's not there
I was still able to install it by cloning this repo then running apm install
and apm link
but shouldn't there be a easier way to install it?
The doc shortcut produces invalid JSDOC comments when functions with destructured arguments are used.
E.g., when arguments are on the same line as the function keyword, the first and last arguments include the curly brace:
/**
* foo - description
*
* @param {type} {a description
* @param {type} b description
* @param {type} c} description
* @return {type} description
*/
function foo({a,b,c}) {
}
When arguments are on a different line than the function keyword, neither the function name nor any of the arguments are present in the JSDOC comment block:
/**
*
*/
function foo({
a,
b,
c
}) {
}
Use activationCommands
instead of activationEvents
in your package.json
Commands should be grouped by selector as follows:
"activationCommands": {
"atom-workspace": ["foo:bar", "foo:baz"],
"atom-text-editor": ["foo:quux"]
}
Package.getActivationCommands (C:\Users\engs1397\AppData\Local\atom\app-0.199.0\resources\app.asar\src\package.js:806:9)
Package.hasActivationCommands (C:\Users\engs1397\AppData\Local\atom\app-0.199.0\resources\app.asar\src\package.js:731:20)
<unknown> (C:\Users\engs1397\AppData\Local\atom\app-0.199.0\resources\app.asar\src\package.js:185:24)
Package.measure (C:\Users\engs1397\AppData\Local\atom\app-0.199.0\resources\app.asar\src\package.js:163:15)
Package.load (C:\Users\engs1397\AppData\Local\atom\app-0.199.0\resources\app.asar\src\package.js:177:12)
PackageManager.loadPackage (C:\Users\engs1397\AppData\Local\atom\app-0.199.0\resources\app.asar\src\package-manager.js:355:14)
I might just be doing something wrong, but my doc-comments are looking like this:
/**
*
*
*/
Instead of:
/**
*
*
*/
...Which is kinda annoying. Might do a PR.
Use activationCommands
instead of activationEvents
in your package.json
Commands should be grouped by selector as follows:
"activationCommands": {
"atom-workspace": ["foo:bar", "foo:baz"],
"atom-text-editor": ["foo:quux"]
}
Package.getActivationCommands (/Applications/Atom.app/Contents/Resources/app.asar/src/package.js:808:9)
Package.hasActivationCommands (/Applications/Atom.app/Contents/Resources/app.asar/src/package.js:733:20)
<unknown> (/Applications/Atom.app/Contents/Resources/app.asar/src/package.js:185:24)
Package.measure (/Applications/Atom.app/Contents/Resources/app.asar/src/package.js:163:15)
Package.load (/Applications/Atom.app/Contents/Resources/app.asar/src/package.js:177:12)
PackageManager.loadPackage (/Applications/Atom.app/Contents/Resources/app.asar/src/package-manager.js:355:14)
Windows 7 64bit / Atom 0.177.0 / atom-jsdoc 0.8.1
I think this might have been introduced with 0.8.1, which I updated to this morning. If I disable this package the problem goes away, and I have also tried leaving it enabled and disabling all other community packages, but the problem remains.
It's easiest to see it in action I think:
Description: In various places, if I highlight text it deletes (and maybe moves) it. Or, if I click inside a comment, then click on the next line (without highlighting) it adds a //
where the cursor ends.
This all appears only to happen when the first cursor position was a comment (perhaps only a single line comment). It doesn't happen in all comments but enough to reproduce.
Cheers!
Use activationCommands
instead of activationEvents
in your package.json
Commands should be grouped by selector as follows:
"activationCommands": {
"atom-workspace": ["foo:bar", "foo:baz"],
"atom-text-editor": ["foo:quux"]
}
Package.getActivationCommands (/Applications/Atom.app/Contents/Resources/app.asar/src/package.js:806:9)
Package.hasActivationCommands (/Applications/Atom.app/Contents/Resources/app.asar/src/package.js:731:20)
<unknown> (/Applications/Atom.app/Contents/Resources/app.asar/src/package.js:185:24)
Package.measure (/Applications/Atom.app/Contents/Resources/app.asar/src/package.js:163:15)
Package.load (/Applications/Atom.app/Contents/Resources/app.asar/src/package.js:177:12)
PackageManager.loadPackage (/Applications/Atom.app/Contents/Resources/app.asar/src/package-manager.js:355:14)
Hi,
I have installed the package in atom and the Control-Shift-d is not working at all.
Could you please let me what is missing.
Regards,
Bhushan J
With code like the following:
var Cat = function(aName) {
this.mName = aName;
}
var Breed = Object.freeze({
BENGAL: "Bengal Cat",
AMERICAN_SHORTHAIR: "American Short Hair",
...
});
Cat.showBreedsList = function(aOutputStream) {
for (var key in Breed) {
if (Breed.hasOwnProperty(key)) {
aOutputStream.log(Breed[key]);
}
}
}
If a block comment (started with /**
) is created before Breed
or Cat.showBreedsList
, it is not continued. Further, if a JSDoc comment is forcibly created before Cat.showBreedsList
using the key trigger, it shows:
/**
*
*/
Cat.showBreedsList = function(aOutputStream) {
for (var key in Breed) {
if (Breed.hasOwnProperty(key)) {
aOutputStream.log(Breed[key]);
}
}
}
I would expect it to show the same as if I had included the function in the prototype - that is, the following:
/**
* Cat.prototype.showBreedsList - description
*
* @param {type} aOutputStream description
* @return {type} description
*/
Cat.showBreedsList = function(aOutputStream) {
for (var key in Breed) {
if (Breed.hasOwnProperty(key)) {
aOutputStream.log(Breed[key]);
}
}
}
Use activationCommands
instead of activationEvents
in your package.json
Commands should be grouped by selector as follows:
"activationCommands": {
"atom-workspace": ["foo:bar", "foo:baz"],
"atom-text-editor": ["foo:quux"]
}
Package.getActivationCommands (/Applications/Atom.app/Contents/Resources/app.asar/src/package.js:808:9)
Package.hasActivationCommands (/Applications/Atom.app/Contents/Resources/app.asar/src/package.js:733:20)
<unknown> (/Applications/Atom.app/Contents/Resources/app.asar/src/package.js:185:24)
Package.measure (/Applications/Atom.app/Contents/Resources/app.asar/src/package.js:163:15)
Package.load (/Applications/Atom.app/Contents/Resources/app.asar/src/package.js:177:12)
PackageManager.loadPackage (/Applications/Atom.app/Contents/Resources/app.asar/src/package-manager.js:355:14)
atom.workspaceView is no longer available. In most cases you will not need the view. See the Workspace docs for alternatives: https://atom.io/docs/api/latest/Workspace. If you do need the view, please use atom.views.getView(atom.workspace), which returns an HTMLElement.
keymaps/jsdoc.cson
Use the `atom-text-editor` tag instead of the `editor` class.
[Enter steps to reproduce below:]
Atom Version: 1.1.0
System: Mac OS X 10.10.5
Thrown From: jsdoc package, v2.0.0
Uncaught TypeError: Cannot read property 'getCursorBufferPosition' of undefined
At /Users/[redacted]/.atom/packages/jsdoc/lib/jsdoc.js:50
TypeError: Cannot read property 'getCursorBufferPosition' of undefined
at atom-text-editor.writeBlock (/Users/[redacted]/.atom/packages/jsdoc/lib/jsdoc.js:50:39)
at CommandRegistry.module.exports.CommandRegistry.handleCommandEvent (/Applications/Atom.app/Contents/Resources/app.asar/src/command-registry.js:243:29)
at /Applications/Atom.app/Contents/Resources/app.asar/src/command-registry.js:3:61
at KeymapManager.module.exports.KeymapManager.dispatchCommandEvent (/Applications/Atom.app/Contents/Resources/app.asar/node_modules/atom-keymap/lib/keymap-manager.js:528:16)
at KeymapManager.module.exports.KeymapManager.handleKeyboardEvent (/Applications/Atom.app/Contents/Resources/app.asar/node_modules/atom-keymap/lib/keymap-manager.js:351:22)
at HTMLDocument.module.exports.WindowEventHandler.handleDocumentKeydown (/Applications/Atom.app/Contents/Resources/app.asar/src/window-event-handler.js:97:20)
-0:34.8.0 core:backspace (atom-text-editor.editor.is-focused)
-0:32.9.0 tern:definition (atom-text-editor.editor.is-focused)
-0:30.2.0 pane:show-next-item (atom-text-editor.editor.is-focused)
-0:16.9.0 editor:select-to-first-character-of-line (div.package-detail.panels-item)
2x -0:14.9.0 editor:duplicate-lines (atom-text-editor.editor.is-focused)
2x -0:13 core:backspace (atom-text-editor.editor.is-focused)
2x -0:11 jsdoc:block (atom-text-editor.editor.is-focused)
{
"core": {
"themes": [
"one-light-ui",
"one-light-syntax"
]
}
}
# User
atom-autocomplete-php, v0.18.1
atom-ternjs, v0.8.4
color-picker, v2.0.13
jsdoc, v2.0.0
jslint, v1.4.0
language-arduino, v0.3.1
# Dev
No dev packages
[Enter steps to reproduce below:]
Atom Version: 1.0.7
System: Mac OS X 10.10
Thrown From: jsdoc package, v2.0.0
Uncaught TypeError: Cannot read property 'getCursorBufferPosition' of undefined
At /Users/marcogodinez/.atom/packages/atom-jsdoc/lib/jsdoc.js:50
TypeError: Cannot read property 'getCursorBufferPosition' of undefined
at atom-text-editor.writeBlock (/Users/marcogodinez/.atom/packages/atom-jsdoc/lib/jsdoc.js:50:39)
at CommandRegistry.module.exports.CommandRegistry.handleCommandEvent (/Applications/Atom.app/Contents/Resources/app.asar/src/command-registry.js:241:29)
at /Applications/Atom.app/Contents/Resources/app.asar/src/command-registry.js:3:61
at KeymapManager.module.exports.KeymapManager.dispatchCommandEvent (/Applications/Atom.app/Contents/Resources/app.asar/node_modules/atom-keymap/lib/keymap-manager.js:524:16)
at KeymapManager.module.exports.KeymapManager.handleKeyboardEvent (/Applications/Atom.app/Contents/Resources/app.asar/node_modules/atom-keymap/lib/keymap-manager.js:347:22)
at HTMLDocument.module.exports.WindowEventHandler.onKeydown (/Applications/Atom.app/Contents/Resources/app.asar/src/window-event-handler.js:177:20)
-1:02.8.0 core:confirm (atom-text-editor.editor.mini.is-focused)
-0:52.4.0 editor:duplicate-lines (atom-text-editor.editor.is-focused)
-0:51.4.0 core:undo (atom-text-editor.editor.is-focused)
-0:00.6.0 jsdoc:block (atom-text-editor.editor.is-focused)
{
"core": {
"themes": [
"isotope-ui",
"one-dark-syntax"
],
"disabledPackages": [
"snake",
"terminal-status",
"linter-write-good"
]
}
}
# User
color-picker, v2.0.11
editorconfig, v1.0.1
emmet, v2.3.12
ginger, v0.1.1
inline-messenger, v1.2.8
isotope-ui, v2.5.1
linter, v1.2.4
linter-jshint, v1.1.4
travis-ci-status, v0.16.0
wakatime, v4.0.12
# Dev
No dev packages
Copying via the keyboard is impossible without it...
Have tried searching for jsdoc
and atom-jsdoc
.
I'm using Atom version 1.0.5
I want to use this package but don't know how to install it.
Use activationCommands
instead of activationEvents
in your package.json
Commands should be grouped by selector as follows:
"activationCommands": {
"atom-workspace": ["foo:bar", "foo:baz"],
"atom-text-editor": ["foo:quux"]
}
Package.getActivationCommands (/Applications/Atom.app/Contents/Resources/app.asar/src/package.js:808:9)
Package.hasActivationCommands (/Applications/Atom.app/Contents/Resources/app.asar/src/package.js:733:20)
<unknown> (/Applications/Atom.app/Contents/Resources/app.asar/src/package.js:185:24)
Package.measure (/Applications/Atom.app/Contents/Resources/app.asar/src/package.js:163:15)
Package.load (/Applications/Atom.app/Contents/Resources/app.asar/src/package.js:177:12)
PackageManager.loadPackage (/Applications/Atom.app/Contents/Resources/app.asar/src/package-manager.js:355:14)
When adding a Docblock above a prototype function. The function name and parameters are not getting added automatically.
When I hit ENTER in a JSDoc block, instead of
/**
* functionName - My function has a long description,
* so I pressed Enter up there
*/
I get
/**
* functionName - My function has a long description,*
so I pressed Enter up there
*/
I think it's due to a shift in the Atom event API. I'll put together a PR to fix this because it's superbly annoying me. :-)
Atom will no longer load this package after June 1st without changes. There are a couple deprecations on the latest version (0.9.0
) of this package:
activationCommands
instead of activationEvents
in your package.json Commands should be grouped by selector as follows: json "activationCommands": { "atom-workspace": ["foo:bar", "foo:baz"], "atom-text-editor": ["foo:quux"] }
atom.views.getView(atom.workspace)
, which returns an HTMLElement.Visit https://gist.github.com/benogle/6d09e295c84b717ef9b4 and search for your package name to see what deprecations are being reported on this package.
See atom/atom#6867 for more info.
Use activationCommands
instead of activationEvents
in your package.json
Commands should be grouped by selector as follows:
"activationCommands": {
"atom-workspace": ["foo:bar", "foo:baz"],
"atom-text-editor": ["foo:quux"]
}
Package.getActivationCommands (C:\Users\John\AppData\Local\atom\app-0.204.0\resources\app.asar\src\package.js:808:9)
Package.hasActivationCommands (C:\Users\John\AppData\Local\atom\app-0.204.0\resources\app.asar\src\package.js:733:20)
<unknown> (C:\Users\John\AppData\Local\atom\app-0.204.0\resources\app.asar\src\package.js:185:24)
Package.measure (C:\Users\John\AppData\Local\atom\app-0.204.0\resources\app.asar\src\package.js:163:15)
Package.load (C:\Users\John\AppData\Local\atom\app-0.204.0\resources\app.asar\src\package.js:177:12)
PackageManager.loadPackage (C:\Users\John\AppData\Local\atom\app-0.204.0\resources\app.asar\src\package-manager.js:355:14)
Would be nice if it also supported commonJS/node.js style definitions, like
module.exports.myFunction = function(argument) {
// statements
};
[Enter steps to reproduce:]
let rd = function(n, m) {
let c = m - n + 1;
return Math.floor(Math.random() * c + n);
}
Atom: 1.16.0 x64
Electron: 1.3.13
OS: Mac OS X 10.12.4
Thrown From: jsdoc package 2.0.0
Uncaught TypeError: Cannot read property 'getCursorBufferPosition' of undefined
At /Users/junjie/.atom/packages/atom-jsdoc/lib/jsdoc.js:50
TypeError: Cannot read property 'getCursorBufferPosition' of undefined
at /packages/atom-jsdoc/lib/jsdoc.js:50:39)
at CommandRegistry.module.exports.CommandRegistry.handleCommandEvent (/app.asar/src/command-registry.js:259:29)
at /app.asar/src/command-registry.js:3:59
at KeymapManager.module.exports.KeymapManager.dispatchCommandEvent (/app.asar/node_modules/atom-keymap/lib/keymap-manager.js:599:16)
at KeymapManager.module.exports.KeymapManager.handleKeyboardEvent (/app.asar/node_modules/atom-keymap/lib/keymap-manager.js:390:22)
at WindowEventHandler.module.exports.WindowEventHandler.handleDocumentKeyEvent (/app.asar/src/window-event-handler.js:106:36)
at /app.asar/src/window-event-handler.js:3:59)
-1:24.9.0 editor:duplicate-lines (input.hidden-input)
-1:23.6.0 jsdoc:block (input.hidden-input)
-0:51 editor:newline (input.hidden-input)
3x -0:48.9.0 core:undo (input.hidden-input)
-0:02.1.0 jsdoc:block (input.hidden-input)
jsdoc 2.0.0
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.