Code Monkey home page Code Monkey logo

reacto's Introduction

Build Status code style: prettier

This project is not maintained anymore. Consider it as a proof of concept.

👋 Interact with your code: use bricks to play with props, imports or quickly change a component type.
⚡️ Package Manager out of the box: add, upgrade, delete and search dependencies in a flash.
Smart and fast autocomplete: automatically find relative path to any file, quick snippets and more to come.
🌖 Preview components, quickly: press Cmd+R to toggle the component previewer. That's it.

Screenshot Preview

  • Reacto is available for Mac, Windows, and Linux. It can be downloaded from the releases page.
  • One last thing

Reacto is still a work in progress. That means it's extremely likely that you'll encounter issues. Always consider it.

Why?

There is absolutely no free software, all-included for React development. The idea is to create the right tool for everyone, to build ideas faster. This is a community project, using plain React code. Anyone can contribute and make it better. Anyone can suggest ideas and help everyone having the perfect tools in their hands. This is what Reacto aims to be: useful.

Quick tips

  • Reacto introduces a concept of "components" (also called "bricks" if you check the code). Components are in a way similar to Unity components. They are tools that give you super powers to quickly interact with your code. Give it a try, hit the Cmd+Shift+F to get started.
  • Quickly access the package manager using Cmd+Shift+P.
  • Install multiple packages at once by separating them with a space, e.g redux react-redux, as many as you want.
  • Navigate through opened files with Ctrl+Tab, add Shift to go backwards.
  • Press Cmd+R to toggle component preview (still a work in progress).
  • Find files and word occurrences using Cmd+F.
  • If something goes wrong, share your experience on the repo ("Issues" tab) and press Cmd+Shift+R. This should be fixed asap. 🙇‍

Things you need to know

  • In its current state, Reacto is a work in progress. I have hope that other developers will join to make it greater. If you want to be part of it, you're more than welcome.
  • This initiative doesn't mean that other softwares are bad. Reacto is unique in the way it is open-source and targeted at React development. You can still happily do programming using other solutions.
  • You don't need to be an expert to help: Reacto code doesn't use typescript, neither flow. As long as you know javascript and its latest syntax, you're ready to join the community. If you are still a beginner, suggesting ideas is also a necessary thing to become better. Reacto needs to be simple, no matter how good you are at React. Please, share feedback, share your feelings.
  • Reacto is a "suggestion". I worked on this project as I personally felt that this would help many people, if we would all come together around this project and build a great experience. This can be as successful as it can be a total failure. It depends on everyone!

Contribute

Reacto uses React and Electron. That is all the knowledge you need to help. If you're new to Electron, no worries. It is no magical and very easy to get along with.

How to contribute?

Simply fork the repository, install dependencies (yarn install) and run the application locally:

  • separately (recommended):
    • development server (webpack): yarn start
    • electron preview: yarn run electron
  • all at once: yarn run electron:dev

If you run into an error related to node-git, please check the following short discussion.

Before opening a pull request, try your changes using yarn run pack. If when running the generated executable file everything runs fine, feel free to send your pull request. 💌

Any contributor can add a quote to the editor placeholders (that quote you see every time the code editor is empty). Simply suggest yours by modifying src/editor/placeholders.js.

Build

yarn run pack. Executable files should appear inside the dist folder.

File structure

This project was bootstrapped with Create React App, then ejected. Meaning the whole configuration can be tweaked.

  • config, any configuration file related to the development server
  • dist, will appear after packing (cf "Build")
  • public: main process code (everything the user don't see). Window handler, application menu, background workers.
    • /heavy-operations, contain any heavy operations that shouldn't be held by the view
    • /window, only contain the application menu so far, anything related to the main window should end up there
    • index.html, application view container (create-react-app default index file)
    • main.js, script that bootstrap and handle the application
  • scripts, nothing important to be seen here
  • src: where the magic happens 🧙
    • /bricks, all the components/bricks. Understand, all the quick tools to interact with code. Each folder represents a brick. Each brick is represented by a brick.js file (that holds all the logic) and renderer.js which is basically a React component, displaying the state from its parent, brick.js. More details below about bricks.
    • /components: all the React components from the UI
      • /_ui, any common UI component (Button, Alert, Container...)
      • /_containers, are not React containers. More like important wrappers such as the project's Root, or EditorWrapper
      • /**, everything else. Their names should all be pretty explicit. If not, do not hesitate to suggest another name!
    • /editor: all the editor's logic
      • /events, every event that can be triggered by a key
      • /hint: contain everything related to autocompletion and snippets. More information below in "Editor#Hint, autocomplete"
        • /modes, each file there is associated to a code "mode". Basically, if you want to add sass suggestions, you would simply create a new file called hint/modes/sass.js
        • /snippets, similar to modes but this time only return a list of code snippets, aiming to generate more code by calling simple keywords
        • index.js, register every hinter and snippets and let the user benefit from them
      • /managers: easily access complex editor elements (os notifications, global events, parent process...)      - /application, represent the whole application. Its .environment attribute is extremely useful to run commands or fetch specific information about the running environment      - **, anything else, still important
      • /search: contain everything related to global search
        • /plugins, each plugin bring another feature to the search command
      • /menus, specific context menus. More information below
    • /store:
      • /models, each model is actually a rematch reducer. If you're familiar with Redux, there should be no difficulty understanding this library. I recommend it to you by the way, it's pretty neat
      • index.js, import every plugin and reducers, then bootstrap our app's store and export it
    • /themes: anything related to general design: editor theme, fonts, syntax highlighter
      • /editor, general application theme. Only dark for now
      • /fonts, fonts. Fonts.
      • /syntax, any syntax highlighter for the code editor
    • /tools, read more below
    • /utils, pretty straight-forward. Give it a look if you're curious or need more helpers

Editor

The editor's logic lives inside src/editor. I tried to keep its structure as simple as possible but it will for sure evolve over time. The following sections describe which elements the editor requires to work.

Managers

Managers' goal is to abstract complex operations. You want to run a command and fetch its output? Use ApplicationManager.environment.run method. You need to send an os notification? Use NotificationsManager.success to do so. You need to ask something to the user? Call PromptUserManager.ask. Basically, a manager should simplify a process. It should provide only static methods that can therefore be accessed from anywhere without spending time instantiating it.

Menus

If you want to add any customised menu when clicking somewhere on the editor, create a new file inside src/menus extending _base-menu.js (please refer to file-tree-entry-menu.js to get a meaningful example). Then export it inside src/menus/index.js and import it whenever you need it.

To open one of these menus manually:

import { specificMenu } from '../menus';

<div
  onContextMenu={(event) => {
    event.stopPropagation();
    // You can also pass no data to .open(...), consider the following
    // as a plain example
    menuName.open({ title: 64, description });
  }}
/>

Bricks

Whenever the current code is updated, a brick will receive the raw code, an AST and the current state of the application. What is also worth noting is that there is a two-way binding. If the user directly interacts with the brick (e.g add a new prop to the component), this will trigger a CodeOperation which will be executed through a Commit. The idea behind this is that you can generate/update/remove code directly when interacting from the brick renderer. When the new code is generated, if the output is different from the current code, the generated code will be dispatched to the editor. Afterwards, the updated code will be sent through all the bricks once again so each brick can update its renderer.

From current code to brick

From current code to brick

From brick to current code

From brick to current code

Each CodeOperation is using facebook/jscodeshift to update tree nodes from AST. It is actually very tedious to use it but as soon as your understand how it works, it looks like magic. You can learn by reading code from the basic available bricks.

Also, I mentioned that each CodeOperation is wrapped into a Commit. When your operation is ready, add it to a new commit and run it to update current code:

const replaceVariableName = new CodeOperation((parsed) => ...);
new Commit(replaceVariableName).run();

Note: a commit can contain a list of code operations. You can also use new Commit().addCodeOperation(...).run().

Hint, autocomplete

To bring autocompletion feature, Reacto provides modes and snippets.

Modes

A mode's job is to return suggestions when autocompletion is running. To improve it, check any hinter's getSuggestions method. Only this method will be called from the outside. It awaits for a list of suggestions, which are described using the Suggestion class.

Again, reading example codes is self-explanatory —probably more than explaining it with words. Refer to src/editor/hint/modes to discover more about the way it works.

If you plan to create a new hinter i.e a new mode, don't forget to import it inside src/editor/hint/index.js which contains an instance of each hinter, used by the global autocompletion manager.

Snippets

To add snippets, create a new file that fits an editor code mode, i.e if there is a /modes/sass.js, then your snippets' name will be snippets/sass.js.

A snippets file is a simple exported Array:

export default [
  {
    displayText: 'Mode: import',
    text: "import #{1} from '#{1}';\nconsole.log(#{1})",
  },
  // ...
];

.displayText is useful to be found by the user when looking for a snippet, and .text is what will appear in the code editor. For now, if you need variables, only 1 variable can be integrated due to CodeMirror limitations. This could be improved by working on editor/hint/snippet.js.

To use variables, write #{1} whenever you need a cursor to be placed at this exact position. Refer to any file inside editor/hint/snippets to get more insights.

Events

Is considered an editor's event, a triggered key combination. All of the events has to be included inside src/editor/events, one file for each event. Check files there, you'll quickly get the idea.

When your event code is ready, explicitly tell EditorManager how to react to the event. Open src/editor/events/index.js and follow the current format to listen and associate a callback to a given event.

The final step is to tell Electron when should this event be sent to the view.

  • If the event is triggered by a global application shortcut, add it to public/window/menu.js
  • If the event is triggered by a local shortcut from the view, find more details inside src/menus/file-tree-entry-menu.js for an example. The code is similar to the one from the global application. The only difference is that these menus are usually customised with local information (file-tree-entry-menu needs to act differently regarding which file is clicked, e.g different file path).

Tools

tldr; tools are meant to be facilitators between a project and console. They should simplify actions and commands we usually forget about or are too complex when you only want to things to work. ~ Read more about tools

UI Components

Is it going to be used many times? Is it that common and abstract? Put it inside _ui. Is it a big wrapper for root components? Put it inside _containers. Otherwise, add it to /components. Every new component should have its own Sass file if necessary (ComponentName.scss) and be named as follow ComponentName/ComponentName.jsx. Then import it into src/components/index.js.

One last thing

I worked on this project with all my heart. I truly spent nights, not sleeping, working on it. The only thing that kept me doing was knowing that this will soon be shared with all of you. Hoping that people will find it interesting and eventually decide to push this tool forward, together. I sincerely wish that someone will feel the same way I do about this project. Reacto needs time to become great, and this can only be achieved collectively. Never hesitate to share new ideas, no matter how crazy it sounds. I can't wait to see what everyone will come up with! Don't be shy, and let's start creating together. ⚡️

License

eveningkid @ MIT

reacto's People

Contributors

albemala avatar dragfire avatar eveningkid avatar lachlanjc avatar pegase745 avatar plxel avatar tbroadley avatar zuice 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

reacto's Issues

Fuzzy file search

This one will probably be a bunch of work, but it's a real slow-down of using Reacto right now. This is one of the final things before I can switch for my main editor :)

Changing font ability

Is there a way to change the IDE font ? If not, it could be an enhancement to have, let's say, the glorious Operator Mono font!

There's no installer for 32 bits machines, is there?

Reacto seems exactly what I've been looking for (I don't like VS Code and Geany does not seem to have a react plugin) but... I couldn't find an installer for 32 bits machines.
I'm working on old Asus machines, one with Windows 7 and other with Debian 9 - both x86.
:(
Would you consider making a x86 portable for Windows?
Thanks.

Very appealing

The experience just feels right. Good work! Keep it up.

Project Roadmap

Do you have a roadmap of features and ideas? Where do you think the project will head to?

Battery usage

I know this is significantly Electron's fault, but Reacto uses dramatically more power than other editors. It's likely pretty difficult to optimize and test, but I want to bring it up as a longer-term thing.

I pulled up (production build, not dev) Reacto + BBEdit next to each other, on the same project with the same file, in macOS Split View, running on my 2013 MacBook Pro with Retina Display 13". (Reacto is unusable at smaller window widths due to the sidebar, I know you've added the ability to hide that since this build was released :)
screen shot 2018-03-29 at 9 23 19 pm

Here's Activity Monitor's Energy tab while the two apps are in the foreground. Atom is also Electron-based (same project open there, but in the background), yet uses 1/5 the power.
screen shot 2018-03-29 at 9 21 53 pm

A moment later, with the apps open but in the background. BBEdit is able to shut down most of what it's running and use almost no power, but Reacto continues using resources.
screen shot 2018-03-29 at 9 22 00 pm

Finally, here's a moment after both BBEdit and Reacto are minimized in the Dock, doing nothing.
screen shot 2018-03-29 at 9 28 27 pm

Bring back task runner

Easy buttons (option to hide them in settings?) for npm/Yarn start, run scripts, etc, for when you don’t need all your terminal’s capabilities.

Error: Cannot find module '../build/Debug/nodegit.node' after installation

Hey I was curious about your Reacto project and gave it a try.

I cloned your repo and followed your installation steps, after yarn install everything was looking fine but once I run yarn run electron:dev I get the Error: Cannot find module '../build/Debug/nodegit.node' error. This happens as well for me if I run the project separately as you recommand.

I'm running a macOS High Sierra v10.13.3 and the node version of this error is v8.9.4. Probably is some unhandled dependency but...

Here is the screenshot with the stacktrace:
screen shot 2018-04-26 at 09 47 40

Reacto 0.2.12 - Fatal

Intel® Core™ i5-4210M CPU @ 2.60GHz × 4
Zorin OS 12.3 64-bit (Ubuntu based)
https://github.com/eveningkid/reacto/releases/download/v0.2.12/Reacto_0.2.12_amd64.deb
After instalation

Uncaught Error: /opt/Reacto/resources/app.asar.unpacked/node_modules/nodegit/build/Release/nodegit.node: invalid ELF header
    at process.module.(anonymous function) [as dlopen] (ELECTRON_ASAR.js:173:20)
    at Object.Module._extensions..node (module.js:598:18)
    at Object.module.(anonymous function) [as .node] (ELECTRON_ASAR.js:187:18)
    at Module.load (module.js:488:32)
    at tryModuleLoad (module.js:447:12)
    at Function.Module._load (module.js:439:3)
    at Module.require (module.js:498:17)
    at require (internal/module.js:20:19)
    at Object.<anonymous> (/opt/Reacto/resources/app.asar/node_modules/nodegit/dist/nodegit.js:12:12)
    at Object.<anonymous> (/opt/Reacto/resources/app.asar/node_modules/nodegit/dist/nodegit.js:1145:3)
    at Module._compile (module.js:571:32)
    at Object.Module._extensions..js (module.js:580:10)
    at Module.load (module.js:488:32)
    at tryModuleLoad (module.js:447:12)
    at Function.Module._load (module.js:439:3)
    at Module.require (module.js:498:17)

error

Issue with CSS autocomplete

When I type React code I get dropdown box under line with suggestions and when I select it it does what it should. But when things are suggested in CSS it is not the case. When I select suggestion with Left Mouse Button nothing happens. When I press enter it just sends me to new line. I tried other buttons but no luck. Is this an issue or there is something I am missing?

Auto-updater issue

The auto-updater appears to be broken and called at startup (even to say everything's up-to-date, which isn't necessary to know.

unknown

cc @Pegase745

Unhandled Rejection (TypeError): Cannot read property 'isInstalled' of null

Hello! Here we have await yarnPackageManager.isAvailable() and here we call checkAlreadyInstalledRecipes after 10 seconds timeout which call another function, which use project.packageManager.isInstalled. What if first await is not completed?

We got this:
image

I didn't dig deeply into Environment.hasCommand and why it is not return any result, but i got this error

I think it's not good idea to use timeout there

Vibrancy missing on non-macOS devices

I just added a default background that should fix the vibrancy issue on non-macOS devices (c6ba079).

Could anyone try to git pull, run the app with yarn start and yarn run electron, and give me some feedback? That would really help to quickly make the windows/linux versions available.

Thanks!

cc @plxel, @gonzalologorg

Windows/Linux Build

Stubbing this in as I would call it a "worth it" feature.

Cross-os builds can be done using Virtualbox and a free VM from Microsoft, or even using Appveyor/Travis CI.

Error in creating new file

Error: ENOENT: no such file or directory, open '/opt/Reacto/resources/app-update.yml'
at /opt/Reacto/resources/app.asar/node_modules/electron-updater/src/AppUpdater.ts:380:27
at Generator.next ()
From previous event:
at AppImageUpdater.loadUpdateConfig (/opt/Reacto/resources/app.asar/node_modules/electron-updater/out/AppUpdater.js:404:11)
at Lazy.AppUpdater.configOnDisk.Lazy [as creator] (/opt/Reacto/resources/app.asar/node_modules/electron-updater/src/AppUpdater.ts:134:43)
at Lazy.get value [as value] (/opt/Reacto/resources/app.asar/node_modules/lazy-val/src/main.ts:18:23)
at /opt/Reacto/resources/app.asar/node_modules/electron-updater/src/AppUpdater.ts:287:33
at Generator.next ()
at runCallback (timers.js:672:20)
at tryOnImmediate (timers.js:645:5)
at processImmediate [as _immediateCallback] (timers.js:617:5)
From previous event:
at AppImageUpdater.getUpdateInfo (/opt/Reacto/resources/app.asar/node_modules/electron-updater/out/AppUpdater.js:330:11)
at /opt/Reacto/resources/app.asar/node_modules/electron-updater/src/AppUpdater.ts:297:35
at Generator.next ()
From previous event:
at AppImageUpdater.doCheckForUpdates (/opt/Reacto/resources/app.asar/node_modules/electron-updater/out/AppUpdater.js:362:11)
at /opt/Reacto/resources/app.asar/node_modules/electron-updater/src/AppUpdater.ts:268:25
at Generator.next ()
at runCallback (timers.js:672:20)
at tryOnImmediate (timers.js:645:5)
at processImmediate [as _immediateCallback] (timers.js:617:5)
From previous event:
at AppImageUpdater._checkForUpdates (/opt/Reacto/resources/app.asar/node_modules/electron-updater/out/AppUpdater.js:308:11)
at AppImageUpdater.checkForUpdates (/opt/Reacto/resources/app.asar/node_modules/electron-updater/src/AppUpdater.ts:217:35)
at checkForUpdates (/opt/Reacto/resources/app.asar/public/window/updater.js:58:15)
at click (/opt/Reacto/resources/app.asar/public/window/menu.js:192:26)
at MenuItem.click (/opt/Reacto/resources/electron.asar/browser/api/menu-item.js:52:9)
at Function.executeCommand (/opt/Reacto/resources/electron.asar/browser/api/menu.js:121:15)

Create a way to add a new folder

Hello! I have been testing this application with a newly created React project. One thing I've noticed is that one can create a new file by specifying the name of the file along with the absolute path. However, there is no option from what I've seen to create a new folder for a React project. The only way to create a new folder is by doing it through finder (I am using a Mac). It would be useful if this is implemented. Thank you!

Awesome Project!

Quite solid, for an IDE developed by a single person. Keep up the good work man. Looking forward to more updates!!

not load in linux

image

when i try to open the app this is what i'm facing with.
and everything not working (new file , add component , etc)
also this is what what error i get in terminal :

Gtk-Message: 16:52:49.209: Failed to load module "canberra-gtk-module"

I use ubuntu 18.04 (64bit)
hope i can use this IDE :)

Update prompt for deleting files/folders

Right now, when you click "Send to Trash" on a file/folder in the Tree, you get a prompt that says it has unsaved changes, like when you close a file while working on it. It should have custom text to confirm a manual deletion.

Flow type bool

Component properties with type "bool" is wrong - should be "boolean"

Reflect editor status in macOS Close button

In fully-native apps (TextEdit, BBEdit, Pages, etc), the red Close stoplight button on macOS gets a black dot inside if the current file has been modified without saving. No idea how/if you can do this in Electron, but it'd be a nice touch. (Certainly not a priority)

Create new one not working on Win7

Hi, thanks for a great tool!

Unfortunately the "Create a new one" option does not seem to do anything on (my) Windows 7 Pro machine. (I haven't tested your app on any other machine yet)
It installed correctly and starts up fine, but then stalls at the "We'll notify you when your new React app is ready" prompt and nothing ever happens...

Thanks for looking into this!

Editor Syntax Highlighter Theme

For now, Reacto's syntax highlighter theme is a very common one.

I thought it could be cool, just as monokai+sublimetext combination for its first release, to have a theme designed for reacto.

This is just an idea. If anyone has any thoughts about it, please discuss it here.
Otherwise, we can stick to the current one.

...it would still be awesome to have our own theme. :)

Interactive simple theme creator: https://mayagao.github.io/accessible-code-theme

BROWSER not recognized as an internal or external command

Running start script BROWSER=none yarn start:all throws error message BROWSER not recognized as an internal or external command.

OS: Windows 10

as i understand BROWSER is env variable, on windows I usually use cross-env package for handling env variables

relates to #4

Overall Performance

Reacto is slow when dealing with big files. I believe the current pain points lay inside Editor.jsx:

  • expensive this.props.updateCode which slow everything down as it is updating the redux store with a massive new value, many times in a row (despite it is actually debounced right now).
  • this.parseCode as it generates an ast and pass everything down to the bricks (even it is wrapped inside perf.debounce as well).

The problem is that both are necessary. Unless we manage to find another way to call them in a smarter way, or simply rethink about the current workflow.

Has anyone any idea about this? That would be really helpful.

Window version not working

To my delight, today I found that we have now option to install on Windows. Thanks you @eveningkid .

I am facing issue where I am not able to do anything like creating new files. Only black screen coming. I am providing the screenshot how it is looking after installation.

Thanks again for making this and then for window setup. I know it will be resolved soon.
capture

React Native

Does it work for React Native too?
I tried to open a current RN project and it didn't go well. What do you it would take to support React Native? I'm seriously interested in this.
Awesome stuff man, keep it up.

Ability to toggle sidebars

  • I was initially confused with the < button in the upper-left, assuming it would hide the file tree—maybe it should be a 🏠 icon instead
  • I want the ability to toggle the sidebars closed.
    • Especially the right sidebar, as it takes up 1/4 of the screen space with nothing on it on a vertical display
    • Having a toggle on the right side of the top of the file tree would be handy too for when you're focusing on one file
  • It'd also be awesome to have these under the View menu as well (keyboard shortcuts, anyone? :)

Keyboard shortcuts for switching files

Would love to switch between files without my mouse. I suggest Atom/Safari/Chrome's implementation, with Cmd-# going to tabs 1-8, and Cmd-9 going to the last tab.

Prettier

Hey, I'm currently gonna start working on implementing Prettier into this project.

First let's think about the options we'd like to include.

Here's my ideas so far

  • Prefer single quotes
  • Trailing comma

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.