Code Monkey home page Code Monkey logo

mvp4g's People

Contributors

frankhossfeld avatar hebnern avatar lukasschmidt avatar nicolaichuk avatar shvets-sergey avatar

mvp4g's Issues

Parent child circular depedency

If we have a GWT project that is divided into several GWT modules (and each
of these module is modeled as mvp4g module). These modules have inheritance
say Module B include Module A. So for firing some event from Module A to
Module B, former gets a dependency on latter causing a circular dependency.

Is there any way in the current framework to get rid of this problem?

Original issue reported on code.google.com by [email protected] on 17 Feb 2010 at 11:30

Option to define a name for a history token for events

It would be useful to have an option to define a name for a history token. If 
I want to have e.g. "#company" in the URL, I have to define an event called 
"company", but it would be better to have an event, let's say "goToCompany" 
as in example, but in the URL would appear "company".

This is similar to @HistoryName("someChildModule"), but for events. It can be 
done by an optional parameter "historyName" in @Event annotation.

Version:
1.2.0-20100423 snapshot

Original issue reported on code.google.com by honza.suchan on 3 May 2010 at 11:55

@HistoryName doesn't seem to be working

I followed the MultiModule example to create my multi module application
and I realized that the name I give to my modules with @HistoryName never
appears in the URL as it's said to do in your documentation
(http://code.google.com/p/mvp4g/wiki/PlaceService#History_Management_and_Multi-M
odules_feature).
Instead, the name of the event (the name of the EventBus method) is
displayed in the URL.
Then I realized the same is happening with your MultiModule example.

Original issue reported on code.google.com by [email protected] on 30 Mar 2010 at 9:22

Online JavaDoc not displaying correctly

What steps will reproduce the problem?
1. go to http://code.google.com/p/mvp4g
2. click JavaDoc link on right of page
3. witness a mess of html!

What is the expected output? What do you see instead?

Formatted JavaDoc, I see lots of html source.

What version of the product are you using? On what operating system?

2.1, vista

Please provide any additional information below.

NA

Original issue reported on code.google.com by [email protected] on 8 Jun 2010 at 5:57

Multi level Inheritance

I've small problem with Mvp4g. I would use more than one level inheritance.
Let's imaginate that we have a complex application. To avoid creation of
huge event buses we create following buses:

ApplicationEventBus (some common events like login, logout)
`- FrameEventBus (master view)
   `- DashboardEventBus (detail view)

Root cause of problem is declaration of "itself" field in generated
modules. They use Mvp4gModule instead of "self" type.

I made patch to change field type to current class name. It's very simple.
Regards,
Luke

Original issue reported on code.google.com by [email protected] on 30 Mar 2010 at 12:48

Attachments:

You can't have subpackage for presenters, views, services or history...

If presenter, view, service or history converter isn't in the same package 
as the one describe in the parent tag, you have to write the full name of 
its class even when it is in a subpackage.

You should have the possibility to indicate that the class attribute 
should be concatenated to the package attribute even if it contains a 
package name.

If a class name starts by a dot, the package attribute will be 
concatenated to the class name. 
For example
<presenters package="com.myapp.client.presenters" >
   <presenter class=".display.MyDisplayPresenter" .../>

will give as class name: 
com.myapp.client.presenters.display.MyDisplayPresenter


Original issue reported on code.google.com by [email protected] on 4 Oct 2009 at 1:51

Fix mvp4g to work UiBinder

gwt 2.0 comes with UiBinder

Currently mvp conflicts with UiBinder when UiBinder xml file includes other 
controls also defined in UiBinder

For example:

Main Mail application view consists from Inbox Panel, Navigation Panel and 
Top Command Panel. If all views are defined in UiBinder xml files, and also 
defined as views in mvp configuration, both mechanism will instantiate each 
view class.

Original issue reported on code.google.com by [email protected] on 29 Nov 2009 at 1:49

Add a method to build event's token

It would be useful to have a method to build event's token for external links 
(i.e. GWT's Hyperlink widgets). This method could be provided by the event bus 
and have the following signature:

public String getEventToken(String eventName, Object... parameters);

This is how you could use it:

String token = event.getEventToken(eventName, arg1, arg2);

Original issue reported on code.google.com by [email protected] on 6 Oct 2010 at 11:38

Released javadoc.jar contains .svn directories

What steps will reproduce the problem?
1. Download 
http://mvp4g.googlecode.com/svn/maven2/releases/com/googlecode/mvp4g/mvp4g/1.2.0
/mvp4g-1.2.0-javadoc.jar
2. Unpack
3. See .svn directories there.

What is the expected output? What do you see instead?
.svn directories should be omitted. Artifact should repacked without them.

Original issue reported on code.google.com by [email protected] on 13 Sep 2010 at 4:43

Wrong error message on NullPointerException

On NullPointerException in the dispatch method of EventBus, the error
message is : 
"Event MyEvent doesn't exist. Have you forgotten to add it to your Mvp4g
configuration file?"

But if the NullPointerException is throw by the execute method, the error
message is not the appropriate.

A proposal to discuss : 

public void dispatch(Event e) {
  try {
    if ( commands.get(e.getType()) != null ) {
      commands.get(e.getType()).execute(e.getForm());
    }
    else {
      throw new Mvp4gException("Event " + e.getType() + " doesn't exist.
Have you forgotten to add it to your Mvp4g configuration file?");
    }
  }
  catch (ClassCastException er) {
    throw new Mvp4gException( "Class of the object sent with event" +
e.getType() + " is incorrect. It should be the same as the one configured
in the Mvp4g configuration file.");
  }
}


Original issue reported on code.google.com by [email protected] on 29 Jul 2009 at 9:40

Start view & its presenter should be built only when needed

Have a child module with autoDisplay = false.

When this child module is loaded, the start view & its presenter are built 
even if they're not used.

Start view & its presenter should be built only when getStartView is 
called (and only if it wasn't built before).

Original issue reported on code.google.com by [email protected] on 25 May 2010 at 12:24

Attribute calledMethod should be optional

Attribute calledMethod should be optional. If not present, the name of the 
method should just be the type of the event preceded by "on".

For example, for an event which type is "displayMessage", if no 
calledMethod attribute is defined, then the name of the method will 
be "onDisplayMessage".

Original issue reported on code.google.com by [email protected] on 14 Aug 2009 at 8:32

Limit of events in event bus

I think there is a limit of events in event bus.
Inside a temporary file generated by mvp4g, in section:
eventBus = new AbstractEventBus(){
    // event's invocations
}

I've got an error:
"Too many synthetic parameters, emulated parameter val$parameter_name is 
exceeding the limit of 255 words eligible for method parameters"

Is there any workaround to solve this issue without dividing my module into 
submodules?

Original issue reported on code.google.com by [email protected] on 18 Aug 2010 at 6:21

For LazyPresenter, createPresenter should be called before view.createView

This way, the presenter can build other multiple presenters and pass their 
views to its own view before its view needs to be build.

Workaround, use this class instead:

public class LazyPresenter<V extends LazyView, E extends EventBus> extends 
BasePresenter<V, E> {

    @Override
    final public void bind() {
        createPresenter();
        view.createView();
        bindView();
    }            

    public void bindView() {
        //do nothing by default 
    }

    public void createPresenter() {
        //do nothing by default    
    }

}


Original issue reported on code.google.com by [email protected] on 11 Oct 2010 at 6:41

Can't use a multiple presenter's view as a start view

If you set a multiple presenter's view as the start view, an error occurs 
because no instance of this presenter is created at start.

Solution:
When the getStartView is called, an instance of this multiple presenter should 
be created.

Original issue reported on code.google.com by [email protected] on 20 Jun 2010 at 2:23

Add a xsd file

Add a xsd file to automaticaly validate the mvp4g xml configuration file

Original issue reported on code.google.com by [email protected] on 7 Aug 2009 at 11:42

No prefetch mechanism for code-split children

What steps will reproduce the problem?
1. Define a child module
2. Set async = true
3. Set autoDisplay = true

What is the expected output? 
I want to be able to load the child module without displaying it, but not
at application start.   

What do you see instead?
Child module load only occurs only when event is passed to it, and that
always triggers start view display.

What version of the product are you using? On what operating system?
1.2.0 snapshot
multi-os (windows, mac, ubuntu)

Please provide any additional information below.
If I could temporarily disable the autoDisplay for the duration of a single
event, I could accomplish the prefetch (by defining and calling an event in
the child module that does nothing).   Better yet though, would be some
kind of "prefetch" mechanism built into the framework.


Thanks.
I love your framework!


Original issue reported on code.google.com by [email protected] on 1 Jun 2010 at 3:30

History: add the possibility to define a 'not found' event

When a token fired by history doesn't correspond to an event, a 'not 
found' event should be fired.

This event must be configurable thanks to XML or annotations:

<history initEvent="myInit" notFoundEvent="error404">...</history>

or 

@NotFoundHistory 

Original issue reported on code.google.com by [email protected] on 7 Nov 2009 at 3:36

How to create a child Module from another child Module?

What steps will reproduce the problem?

1. I created the child Module(B) by extending child Module(A) and mention
the child Module(B) name inside the child Module(A) Event Bus.  
2. I created method with setParentModule(childModule(A))
3.


What is the expected output? What do you see instead?

Excpected output:To load a child Module from another child module

Error: Failed to instantiate the child module(B) Impl. But the history
converter works (convertToToken) works fine but the child Module (B) Impl
fails to instantiate due to being abstract class.


What version of the product are you using? On what operating system?
mvp4g 1.1.0 . Linux Fedora

Please provide any additional information below.
I suppose Inheritance property from the child Module(A) is not being
implemented for the child Module(B)..

Original issue reported on code.google.com by [email protected] on 21 May 2010 at 11:55

  • Merged into: #25

Class.forName(...) shouldn't be used in the framework

When Class.forName(...) is called, it creates a class object thanks to the 
name but it also instantiates all static attributes of the class.
If one of the attribute needs a call to GWT.create(...), an error will be 
thrown and the application won't be loaded.

Instead of using this method, use:
context.getTypeOracle().findType( typeName );

Original issue reported on code.google.com by [email protected] on 28 Oct 2009 at 2:50

Error with two source paths

Can't find my EventBus class when I use two source paths:

<source path='com.hyip.domain' />
<source path='com.hyip.client' />

If I put the 'domain' package inside the 'client' package, and remove the 
<source> tags from gwt.xml, it works.

See screenshot for details.

- Mvp4g is 1.2
- GWT 2.0.3
- Java 1.6
- Mac OS Snow Leopard

Original issue reported on code.google.com by GBalensiefer on 11 Jul 2010 at 6:52

Attachments:

Add a @View annotation

Add a @View annotation to have the choice to either annotate the presenter or 
the view.

You could have either

@Presenter(view=OneView.class)
public class OnePresenter ... {}

or

@View(presenter=OnePresenter.class)
public class OneView ... {}

Original issue reported on code.google.com by [email protected] on 1 Oct 2010 at 11:29

Improve error message when using a presenter with the wrong event bus

It may be a bug or it may be that I don't fully understand how multi-module 
feature works in mvp4g, it which case I apologize for reporting this as a bug. 

I created a skeleton of an application which is certainly going to change but 
that's not the point - for now I'm just experimenting with the mvp4g 
multi-module feature. 

Here is the error message that I'm getting during compilation:

       [ERROR] presenter pl_ciborowski_konrad_peval_client_application_ApplicationPresenter: Invalid Event Bus. Can not convert pl.ciborowski.konrad.peval.client.main.MainEventBus to pl.ciborowski.konrad.peval.client.application.ApplicationEventBus
com.mvp4g.util.exception.InvalidTypeException: presenter 
pl_ciborowski_konrad_peval_client_application_ApplicationPresenter: Invalid 
Event Bus. Can not convert pl.ciborowski.konrad.peval.client.main.MainEventBus 
to pl.ciborowski.konrad.peval.client.application.ApplicationEventBus
        at com.mvp4g.util.config.Mvp4gConfiguration.validateEventHandlers(Mvp4gConfiguration.java:720)
        at com.mvp4g.util.config.Mvp4gConfiguration.load(Mvp4gConfiguration.java:212)
        at com.mvp4g.util.Mvp4gGenerator.writeClass(Mvp4gGenerator.java:144)
        at com.mvp4g.util.Mvp4gGenerator.createClass(Mvp4gGenerator.java:89)
        at com.mvp4g.util.Mvp4gGenerator.generate(Mvp4gGenerator.java:70)
        at com.google.gwt.dev.javac.StandardGeneratorContext.runGenerator(StandardGeneratorContext.java:418)
        at com.google.gwt.dev.cfg.RuleGenerateWith.realize(RuleGenerateWith.java:38)
        at com.google.gwt.dev.shell.StandardRebindOracle$Rebinder.tryRebind(StandardRebindOracle.java:108)
        at com.google.gwt.dev.shell.StandardRebindOracle$Rebinder.rebind(StandardRebindOracle.java:54)
        at com.google.gwt.dev.shell.StandardRebindOracle.rebind(StandardRebindOracle.java:154)
        at com.google.gwt.dev.shell.StandardRebindOracle.rebind(StandardRebindOracle.java:143)
        at com.google.gwt.dev.Precompile$DistillerRebindPermutationOracle.getAllPossibleRebindAnswers(Precompile.java:317)
        at com.google.gwt.dev.jdt.WebModeCompilerFrontEnd.doFindAdditionalTypesUsingRebinds(WebModeCompilerFrontEnd.java:95)
        at com.google.gwt.dev.jdt.AbstractCompiler$Sandbox$CompilerImpl.process(AbstractCompiler.java:200)
        at org.eclipse.jdt.internal.compiler.Compiler.compile(Compiler.java:444)
        at com.google.gwt.dev.jdt.AbstractCompiler$Sandbox$CompilerImpl.compile(AbstractCompiler.java:123)
        at com.google.gwt.dev.jdt.AbstractCompiler$Sandbox$CompilerImpl.compile(AbstractCompiler.java:234)
        at com.google.gwt.dev.jdt.AbstractCompiler$Sandbox$CompilerImpl.access$200(AbstractCompiler.java:109)
        at com.google.gwt.dev.jdt.AbstractCompiler.compile(AbstractCompiler.java:522)
        at com.google.gwt.dev.jdt.BasicWebModeCompiler.getCompilationUnitDeclarations(BasicWebModeCompiler.java:112)
        at com.google.gwt.dev.jdt.WebModeCompilerFrontEnd.getCompilationUnitDeclarations(WebModeCompilerFrontEnd.java:47)
        at com.google.gwt.dev.jjs.JavaToJavaScriptCompiler.precompile(JavaToJavaScriptCompiler.java:430)
        at com.google.gwt.dev.jjs.JavaScriptCompiler.precompile(JavaScriptCompiler.java:32)
        at com.google.gwt.dev.Precompile.precompile(Precompile.java:522)
        at com.google.gwt.dev.Precompile.precompile(Precompile.java:414)
        at com.google.gwt.dev.Compiler.run(Compiler.java:201)
        at com.google.gwt.dev.Compiler$1.run(Compiler.java:152)
        at com.google.gwt.dev.CompileTaskRunner.doRun(CompileTaskRunner.java:87)
        at com.google.gwt.dev.CompileTaskRunner.runWithAppropriateLogger(CompileTaskRunner.java:81)
        at com.google.gwt.dev.Compiler.main(Compiler.java:159)


So it says it cannot convert the MainEventButs to ApplicationEventBus. I'm not 
sure what this really means. Both are sublasses of EventBus so why is it 
attempting to convert one to another?

Here is my MainEventBus

@Events(startView = MainViewImpl.class, historyOnStart = false, debug = true)
@ChildModules({@ChildModule(moduleClass = LoginModule.class, async = false, 
autoDisplay = false),
@ChildModule(moduleClass = ApplicationModule.class, async = true, autoDisplay = 
false)})
public interface MainEventBus extends EventBus {

    @Start
    @Event(modulesToLoad = LoginModule.class, handlers = MainPresenter.class)
    public void goToLogin();

    @Event(modulesToLoad = ApplicationModule.class, handlers = ApplicationPresenter.class)
    public void goToAppMainScreen();

    @Event(handlers = MainPresenter.class)
    public void changeBodyContainer(Canvas bodyContainer);

}

Here is my application event bus

@Events(startView = ApplicationViewImpl.class, module = 
ApplicationModule.class, debug = true)
public interface ApplicationEventBus extends EventBus {

    @Event(forwardToParent = true)
    public void changeBodyContainer(Canvas bodyContainer);

    /**
     * @see MainEventBus#goToAppMainScreen()
     */
    @Event(handlers = ApplicationPresenter.class)
    public void goToAppMainScreen();

}

In case you need the ApplicationPresenter - here it is:

@Presenter(view = ApplicationViewImpl.class)
public class ApplicationPresenter extends BasePresenter<ApplicationView, 
ApplicationEventBus> {

    /**
     * Displays the application main screen.
     */
    public void onGoToAppMainScreen() {
        eventBus.changeBodyContainer(view.getViewCanvas());
    }

}

I am puzzled no end why this doesn't compile. Either it is indeed a bug or I'm 
missing something blindigly obvious.

Best regards,
Konrad Ciborowski
Kraków, Poland


PS The error message should say "Cannot convert" rather than "Can not convert".

Original issue reported on code.google.com by [email protected] on 27 Sep 2010 at 8:43

Event can be caught by no presenter

You should have the possibility to define an event with no handler in case 
it's not caught for the moment.

the attribute handlers must be there but 
<event ... handlers="" ... /> must be a correct value


Original issue reported on code.google.com by [email protected] on 13 Oct 2009 at 6:32

Unexpected error when you use @HistoryConfiguration with no @InitHistory

If you use @HistoryConfiguration with no @InitHistory, an unexcept error 
message shows:

history : Encountered a reference to unknown element 'null'

The following error message should be displayed: You must define a History init 
event if you use history converters.

workaround: set the mandatory @InitHistory fixes the issue

Original issue reported on code.google.com by [email protected] on 5 Oct 2010 at 5:48

Grammar problem in error message

Mvp4gAnnotationException throws this error message:

"Have you forget to inject it to a presenter?"

The correct form should be:

"Have you forgotten to inject it to a presenter?"

A trivial error but also very easy to fix.

Best regards,
Konrad Ciborowski

Original issue reported on code.google.com by [email protected] on 20 Aug 2010 at 9:54

Suggestion

would be better, if u create a group to allow we all discuss on mvp for gwt

Original issue reported on code.google.com by [email protected] on 30 Jun 2009 at 5:53

Add path attribute to service tag

Add path attribute to service tag as described by webdizz (see 
http://groups.google.com/group/mvp4g/browse_thread/thread/a182892e248dac19)
.

Original issue reported on code.google.com by [email protected] on 22 Sep 2009 at 5:01

Add a navigation confirmation when firing certain events

Some event will make the application switch screens. For this event, developer 
should be able to display a navigation confirm if needed to make sure the user 
wants to leave the page. It's really useful to prevent user to lose information 
on create page.

Original issue reported on code.google.com by [email protected] on 1 Oct 2010 at 11:43

Lazy creation of presenter

Presenters should be built only when they handle their first event or at 
start if its view gets displayed.

See following post for more details: 
(http://groups.google.com/group/mvp4g/browse_thread/thread/1fa4aeed1e25fff2
)


Original issue reported on code.google.com by [email protected] on 11 Nov 2009 at 10:12

Ability to use EventBus calls with more than 1 parameter

Currently the eventBus calls support only 1 parameters and as previously
discussed with Pierre he indicated it could be done however some revamp of
other services are required as well.

So this is just to register as an issue that would be nice to get addressed
on next version.

Original issue reported on code.google.com by [email protected] on 11 Mar 2010 at 2:09

  • Merged into: #21

Allow to define submodule with gwt xml file

I need to change application's locale on the client side after user's 
login. To do it I split application into three modules: 
 - application - which is root module,
 - login - responsible for user's login and setting user's locale in 
variable __gwt_Locale,
 - main - rest of application.

Now I need to define property provider for variable locale in main 
submodule. To do this mvp4g have to read submodule definition from gwt xml 
file what is missing in current version.

This enhancement has other benefits, i.e. login module can inherit less 
modules than main module so the first one will load faster.

Original issue reported on code.google.com by [email protected] on 1 Apr 2010 at 10:31

DockLayoutPanel does not render correctly in a view.

I'm currently using 1.1.0.

What I'm attempting to do is have a DockLayoutPanel as my main widget (like 
the grid in the samples).

To duplicate I took the Mvp4gHistory project and did the following :

1) Changed mvp4ghistory.html file to <!DOCKTYPE html>
2) Did the following code change in RootTemplateView.java :

DockLayoutPanel dock=new DockLayoutPanel(Unit.EM);
    DeckPanel message=new DeckPanel();
    DeckPanel top=new DeckPanel();
    DeckPanel bottom=new DeckPanel();
    DeckPanel center=new DeckPanel();

    @Override
    protected Widget createWidget(){
        messageBar.setStyleName( "messageBar" );
        message.add(messageBar);
        message.setSize("100%", "100%");
        top.setSize("100%", "100%");
        bottom.setSize("100%", "100%");
        center.setSize("100%", "100%");
        dock.setSize("100%", "100%");
        dock.addNorth(message, 5);
        dock.addNorth(top, 5);
        dock.addSouth(bottom, 5);
        dock.add(center);
        return dock;
    }

    public Label getMessageBar() {
        return messageBar;
    }

    public void setBottomWidget( Widget w ) {
        bottom.clear();
        bottom.add(w);
        bottom.showWidget(0);
    }

    public void setMainWidget( Widget w ) {
        center.clear();
        center.add(w);
        center.showWidget(0);
    }

    public void setTopWidget( Widget w ) {
        top.clear();
        top.add(w);
        top.showWidget(0);


    }

    public void clearMainWidget() {
        center.clear();
    }

Now I have tried creating widgets and putting them into the dock as a test 
(instead of the DeckPanels), but even on a static display it isn't 
rendering correctly (although Chrome will sometimes get close).

I recall reading something about it maybe having something to do with 
RootView and RootPresenter but have no idea how to overcome it.

Original issue reported on code.google.com by [email protected] on 26 Jan 2010 at 5:13

Attachments:

Add a presenter lifecycle: load, unload, reset

Developers should be able to override presenter's methods to define actions to 
execute when its view is getting displayed (load method), or when its view is 
getting removed (unload method) or whenever the presenter has to handle an 
event (reset method)

Original issue reported on code.google.com by [email protected] on 1 Oct 2010 at 11:47

JUnit Tests of the examples fail

When you run JUnit tests for the example, they fail for the following 
reason:
com.mvp4g.client.Mvp4gException: Event changeTopWidget doesn't exist. Have 
you forgotten to add it to your Mvp4g configuration file?

Workaround:

In com.mvp4g.example.client.mock.eventbus.MockEventBus class
change 

public void dispatch( String eventType, Object form ) {

to

public void dispatch( String eventType, Object form, boolean hasHistory ) {



Original issue reported on code.google.com by [email protected] on 17 Oct 2009 at 7:09

Please allow us to bind an event to classes that have a specific annotation or implement a specific interface

Requested functionality:
I would like the ability to bind an event in the eventbus to something that is 
either annotated with some user created annotation or something that implements 
a specific interface
-

Detailed description of functionality

In the eventbus

@Event(annotatedWith=MyNewAnnotation.class)
void fireSomeEvent(String variable);


The presenter
@MyNewAnnotation
@Presenter(....)

public void onFireSomeEvent(String variable)




-
-

Use cases or testing scenarios for the functionality
The would allow me to build a framework that other people could build upon. 
Also, for events that are managed by many different presenters/handlers it 
would reduce the codebloat in the eventbus and increase readability. 



Original issue reported on code.google.com by [email protected] on 28 Sep 2010 at 8:06

Multiple instances of View/Presenter

Currently Mvp4g always has one view and presenter. It would be nice to
support more than one instance of view/presenter - for example by adding
"multiple=true" attribute to @Event annotation. After that Mvp4g should
create new view and presenter on every event.

Original issue reported on code.google.com by [email protected] on 31 Mar 2010 at 9:15

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.