edvin / fxldemo Goto Github PK
View Code? Open in Web Editor NEWFXLauncher demo application
License: Apache License 2.0
FXLauncher demo application
License: Apache License 2.0
I use a javafx maven plugin to build my applications, and in the pom.xml I configure the icon of installer and application, but I don't find in this builder, this is possible?
This is the first time that I get this error after using this for almost 2 years. I hope you can help me.
Error:
[DEBUG] Executing command line: [javapackager, -deploy, -native, -outdir, /home/users/ravenp/Workspace/Java_Projects/cloudstaffcommunicator/target/installer, -outfile, CommunicatorApp, -srcdir, /home/users/ravenp/Workspace/Java_Projects/cloudstaffcommunicator/target/app, -srcfiles, fxlauncher.jar, -appclass, fxlauncher.Launcher, -name, Communicator, -title, Communicator, -vendor, Cloudstaff INC, -BappVersion=1.0, -Bidentifier=com.cloudstaff.cloudstaff.communicator] Unrecognized option: -m Error: Could not create the Java Virtual Machine. Error: A fatal exception has occurred. Program will exit. [INFO] ------------------------------------------------------------------------ [INFO] BUILD FAILURE [INFO] ------------------------------------------------------------------------ [INFO] Total time: 3.408 s [INFO] Finished at: 2018-07-19T11:44:53+08:00 [INFO] Final Memory: 31M/384M [INFO] ------------------------------------------------------------------------ [ERROR] Failed to execute goal org.codehaus.mojo:exec-maven-plugin:1.4.0:exec (installer) on project cloudstaff.communicator: Command execution failed. Process exited with an error: 1 (Exit value: 1) -> [Help 1] org.apache.maven.lifecycle.LifecycleExecutionException: Failed to execute goal org.codehaus.mojo:exec-maven-plugin:1.4.0:exec (installer) on project cloudstaff.communicator: Command execution failed. at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:212) at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:153) at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:145) at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:116) at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:80) at org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build(SingleThreadedBuilder.java:51) at org.apache.maven.lifecycle.internal.LifecycleStarter.execute(LifecycleStarter.java:128) at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:307) at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:193) at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:106) at org.apache.maven.cli.MavenCli.execute(MavenCli.java:863) at org.apache.maven.cli.MavenCli.doMain(MavenCli.java:288) at org.apache.maven.cli.MavenCli.main(MavenCli.java:199) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced(Launcher.java:289) at org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.java:229) at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode(Launcher.java:415) at org.codehaus.plexus.classworlds.launcher.Launcher.main(Launcher.java:356) Caused by: org.apache.maven.plugin.MojoExecutionException: Command execution failed. at org.codehaus.mojo.exec.ExecMojo.execute(ExecMojo.java:276) at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:134) at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:207) ... 20 more Caused by: org.apache.commons.exec.ExecuteException: Process exited with an error: 1 (Exit value: 1) at org.apache.commons.exec.DefaultExecutor.executeInternal(DefaultExecutor.java:404) at org.apache.commons.exec.DefaultExecutor.execute(DefaultExecutor.java:166) at org.codehaus.mojo.exec.ExecMojo.executeCommandLine(ExecMojo.java:660) at org.codehaus.mojo.exec.ExecMojo.execute(ExecMojo.java:265) ... 22 more [ERROR] [ERROR] [ERROR] For more information about the errors and possible solutions, please read the following articles: [ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/MojoExecutionException
Code:
`
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.mockito</groupId>
<artifactId>mockito-all</artifactId>
<version>1.9.5</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>no.tornado</groupId>
<artifactId>fxlauncher</artifactId>
<version>1.0.14</version>
</dependency>
<dependency>
<groupId>com.airhacks</groupId>
<artifactId>afterburner.fx</artifactId>
<version>1.7.0</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>com.jfoenix</groupId>
<artifactId>jfoenix</artifactId>
<version>1.4.0</version>
</dependency>
<dependency>
<groupId>de.jensd</groupId>
<artifactId>fontawesomefx</artifactId>
<version>8.9</version>
</dependency>
<dependency>
<groupId>org.xerial</groupId>
<artifactId>sqlite-jdbc</artifactId>
<version>3.8.11.2</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>com.mashape.unirest</groupId>
<artifactId>unirest-java</artifactId>
<version>1.4.9</version>
</dependency>
<dependency>
<groupId>io.reactivex</groupId>
<artifactId>rxjava</artifactId>
<version>1.2.5</version>
</dependency>
<dependency>
<groupId>io.reactivex</groupId>
<artifactId>rxjavafx</artifactId>
<version>1.0.0</version>
</dependency>
<dependency>
<groupId>org.imgscalr</groupId>
<artifactId>imgscalr-lib</artifactId>
<version>4.2</version>
</dependency>
<dependency>
<groupId>com.1stleg</groupId>
<artifactId>jnativehook</artifactId>
<version>2.0.2</version>
</dependency>
<dependency>
<groupId>org.jasypt</groupId>
<artifactId>jasypt</artifactId>
<version>1.9.2</version>
</dependency>
<dependency>
<groupId>com.google.code.gson</groupId>
<artifactId>gson</artifactId>
<version>2.8.0</version>
</dependency>
<dependency>
<groupId>com.github.oshi</groupId>
<artifactId>oshi-json</artifactId>
<version>3.4.4</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>1.7.25</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-jdk14</artifactId>
<version>1.7.25</version>
</dependency>
<dependency>
<groupId>org.controlsfx</groupId>
<artifactId>controlsfx</artifactId>
<version>8.40.12</version>
</dependency>
<dependency>
<groupId>de.huxhorn.lilith</groupId>
<artifactId>de.huxhorn.lilith.3rdparty.junique</artifactId>
<version>1.0.2</version>
</dependency>
</dependencies>
<properties>
<!-- Installer Filename without suffix -->
<app.filename>CommunicatorApp</app.filename>
<!-- The JavaFX Application class name -->
<app.mainClass>com.cloudstaff.communicator.App</app.mainClass>
<!-- Optional override to specify where the cached files are stored. Default is current working directory -->
<app.cacheDir>USERLIB/Communicator</app.cacheDir>
<!-- Optional parameters to the application, will be embedded in the launcher and can be overridden on the command line -->
<app.parameters>--myOption=myValue --myOtherOption=myOtherValue</app.parameters>
<!-- The Application vendor used by javapackager -->
<app.vendor>Cloudstaff INC</app.vendor>
<!-- The Application version used by javapackager -->
<app.version>1.0</app.version>
<!-- Base URL where you will host the application artifacts -->
<app.url></app.url>
<!-- Optional scp target for application artifacts hosted at the above url -->
<app.deploy.target></app.deploy.target>
<!-- The app and launcher will be assembled in this folder -->
<app.dir>${project.build.directory}/app</app.dir>
<!-- Native installers will be built in this folder -->
<app.installerdir>${project.build.directory}/installer</app.installerdir>
<!-- Should the client downgrade if the server version is older than the local version? -->
<app.acceptDowngrade>false</app.acceptDowngrade>
<maven.compiler.source>1.8</maven.compiler.source>
<maven.compiler.target>1.8</maven.compiler.target>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
<build>
<plugins>
<!-- Compile project jar to appdir -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<version>2.6</version>
<configuration>
<outputDirectory>${app.dir}</outputDirectory>
</configuration>
</plugin>
<!-- Copy dependencies to app dir -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
<version>2.10</version>
<configuration>
<excludeScope>provided</excludeScope>
<outputDirectory>${app.dir}</outputDirectory>
<stripVersion>true</stripVersion>
</configuration>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>copy-dependencies</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>exec-maven-plugin</artifactId>
<version>1.4.0</version>
<!-- Generate app.xml manifest -->
<executions>
<execution>
<id>create-manifest</id>
<phase>package</phase>
<goals>
<goal>java</goal>
</goals>
<configuration>
<mainClass>fxlauncher.CreateManifest</mainClass>
<arguments>
<argument>${app.url}</argument>
<argument>${app.mainClass}</argument>
<argument>${app.dir}</argument>
<argument>--cache-dir=${app.cacheDir}</argument>
<argument>--accept-downgrade=${app.acceptDowngrade}</argument>
<argument>--include-extensions=jpg</argument>
<argument>${app.parameters}</argument>
</arguments>
</configuration>
</execution>
<!-- Embed app.xml inside fxlauncher.xml so we don't need to reference app.xml to start the app -->
<execution>
<id>embed-manifest-in-launcher</id>
<phase>package</phase>
<goals>
<goal>exec</goal>
</goals>
<configuration>
<executable>jar</executable>
<workingDirectory>${app.dir}</workingDirectory>
<arguments>
<argument>uf</argument>
<argument>fxlauncher.jar</argument>
<argument>app.xml</argument>
</arguments>
</configuration>
</execution>
<execution>
<id>installer</id>
<phase>install</phase>
<goals>
<goal>exec</goal>
</goals>
<configuration>
<executable>javapackager</executable>
<arguments>
<argument>-deploy</argument>
<argument>-native</argument>
<argument>-outdir</argument>
<argument>${app.installerdir}</argument>
<argument>-outfile</argument>
<argument>${app.filename}</argument>
<argument>-srcdir</argument>
<argument>${app.dir}</argument>
<argument>-srcfiles</argument>
<argument>fxlauncher.jar</argument>
<argument>-appclass</argument>
<argument>fxlauncher.Launcher</argument>
<argument>-name</argument>
<argument>${project.name}</argument>
<argument>-title</argument>
<argument>${project.name}</argument>
<argument>-vendor</argument>
<argument>${app.vendor}</argument>
<argument>-Bicon=${basedir}/src/main/resources/images/commapp.png</argument>
<argument>-BappVersion=${app.version}</argument>
<argument>-Bidentifier=${project.groupId}.${project.artifactId}</argument>
</arguments>
</configuration>
</execution>
<!-- Copy application artifacts to remote site using scp (optional) -->
<execution>
<id>deploy-app</id>
<phase>deploy</phase>
<goals>
<goal>exec</goal>
</goals>
<configuration>
<executable>scp</executable>
<arguments>
<argument>-r</argument>
<argument>${app.dir}/.</argument>
<argument>${app.deploy.target}</argument>
</arguments>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.3</version>
<configuration>
<source>1.8</source>
<target>1.8</target>
</configuration>
</plugin>
</plugins>
<resources>
<resource>
<directory>src/main/java</directory>
<includes>
<include>**/*.fxml</include>
<include>**/*.css</include>
<include>**/*.properties</include>
<include>**/*.otf</include>
</includes>
</resource>
<resource>
<directory>src/main/resources</directory>
<filtering>true</filtering>
<includes>
<include>**/*.xml</include>
<include>**/*.css</include>
<include>**/*.properties</include>
<include>**/*.otf</include>
<include>**/*.png</include>
<include>**/*.jpg</include>
</includes>
</resource>
</resources>
</build>
Hello,
thanks for the fxlauncher, it is great !
I just have an issue with the scp deploy (with maven).
I updated the properties in my pom.xml,
but mvn exec:exec@deploy-app
does not work.
I get this exception :
Could not find goal 'exec@deploy-app' in plugin org.codehaus.mojo:exec-maven-plugin:1.4.0 among available goals exec, help, java -> [Help 1]
To see the full stack trace of the errors, re-run Maven with the -e switch.
Re-run Maven using the -X switch to enable full debug logging.
I use MacOS and when run mvn clean package receive following error
Caused by: java.nio.file.NoSuchFileException: --cache-dir=USERLIB/FxlDemo
at sun.nio.fs.UnixException.translateToIOException (UnixException.java:86)
at sun.nio.fs.UnixException.rethrowAsIOException (UnixException.java:102)
at sun.nio.fs.UnixException.rethrowAsIOException (UnixException.java:107)
at sun.nio.fs.UnixFileAttributeViews$Basic.readAttributes (UnixFileAttributeViews.java:55)
at sun.nio.fs.UnixFileSystemProvider.readAttributes (UnixFileSystemProvider.java:144)
at java.nio.file.Files.readAttributes (Files.java:1737)
at java.nio.file.FileTreeWalker.getAttributes (FileTreeWalker.java:219)
at java.nio.file.FileTreeWalker.visit (FileTreeWalker.java:276)
at java.nio.file.FileTreeWalker.walk (FileTreeWalker.java:322)
at java.nio.file.Files.walkFileTree (Files.java:2662)
at java.nio.file.Files.walkFileTree (Files.java:2742)
at fxlauncher.CreateManifest.create (CreateManifest.java:139)
at fxlauncher.CreateManifest.main (CreateManifest.java:103)
at sun.reflect.NativeMethodAccessorImpl.invoke0 (Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke (NativeMethodAccessorImpl.java:62)
How can I trouble shoo the issue?
The POM build example is great but I am also missing a Gradle build example.
I created a whatsnew.html and placed in src/main/resources folder
I added in pom.xml :
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>exec-maven-plugin</artifactId>
<version>1.4.0</version>
<!-- Generate app.xml manifest -->
<executions>
<execution>
<id>copy-whatsnewfile</id>
<phase>package</phase>
<goals>
<goal>exec</goal>
</goals>
<configuration>
<executable>jar</executable>
<workingDirectory>${app.dir}</workingDirectory>
<arguments>
<argument>uf</argument>
<argument>fxlauncher.jar</argument>
<argument>-C</argument>
<argument>${project.basedir}/src/main/resources</argument>
<argument>whatsnew.html</argument>
</arguments>
</configuration>
</execution>
...
I made changes to a java class...
I packaged the app and deployed it using maven.
Changes are updating OK... but I do not see the whatsnew.html
// Boat.java
public class Boat {
private final String name;
private boolean sailPosition;
private int speed;
public Boat(String name) {
this.name = name;
this.sailPosition = false;
this.speed = 0;
}
public void goFast() {
this.sailPosition = true;
if (speed < 100) {
this.speed += 10;
}
}
public void goSlow() {
this.sailPosition = false;
if (speed > 0) {
this.speed -= 5;
}
}
public void whereIsTheSail() {
System.out.print(name + " ");
if (sailPosition) {
System.out.println("sail is up");
} else {
System.out.println("sail is down");
}
}
}
giving error code even though it says there are no errors within the code.
Building boat 1.0-SNAPSHOT
from pom.xml
--------------------------------[ jar ]---------------------------------
--- resources:3.3.1:resources (default-resources) @ boat ---
skip non existing resourceDirectory C:\Users\alenb\OneDrive\Documents\NetBeansProjects\boat\src\main\resources
--- compiler:3.11.0:compile (default-compile) @ boat ---
Nothing to compile - all classes are up to date
Failed to execute goal org.codehaus.mojo:exec-maven-plugin:3.1.0:exec (default-cli) on project boat: Command execution failed.: Process exited with an error: 1 (Exit value: 1) -> [Help 1]
To see the full stack trace of the errors, re-run Maven with the -e switch.
Re-run Maven using the -X switch to enable full debug logging.
For more information about the errors and possible solutions, please read the following articles:
[Help 1] http://cwiki.apache.org/confluence/display/MAVEN/MojoExecutionException
I am interested in an auto-updater and I tried the small jar, which works perfectly. I also tried the native mac installer, but this one gives the following NPE when I start the application:
java.lang.NullPointerException
at no.tornado.FxlDemo.start(FxlDemo.java:33)
at fxlauncher.Launcher.lambda$launchAppFromManifest$2(Launcher.java:101)
at com.sun.javafx.application.PlatformImpl.lambda$null$173(PlatformImpl.java:295)
at java.security.AccessController.doPrivileged(Native Method)
at com.sun.javafx.application.PlatformImpl.lambda$runLater$174(PlatformImpl.java:294)
at com.sun.glass.ui.InvokeLaterDispatcher$Future.run(InvokeLaterDispatcher.java:95)
mvn clean package
gives bunch of javafx related errors:
package javafx.application does not exist
package javafx.event does not exist
...
Upon opening a built application, I get greeted with app closing and spewing out this error.
javax.net.ssl.SSLException: java.lang.RuntimeException: Unexpected error: java.security.InvalidAlgorithmParameterException: the trustAnchors parameter must be non-empty
at sun.security.ssl.Alerts.getSSLException(Alerts.java:208)
at sun.security.ssl.SSLSocketImpl.fatal(SSLSocketImpl.java:1946)
at sun.security.ssl.SSLSocketImpl.fatal(SSLSocketImpl.java:1903)
at sun.security.ssl.SSLSocketImpl.handleException(SSLSocketImpl.java:1886)
at sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1402)
at sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1379)
at sun.net.www.protocol.https.HttpsClient.afterConnect(HttpsClient.java:559)
at sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.connect(AbstractDelegateHttpsURLConnection.java:185)
at sun.net.www.protocol.http.HttpURLConnection.getInputStream0(HttpURLConnection.java:1564)
at sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1492)
at sun.net.www.protocol.https.HttpsURLConnectionImpl.getInputStream(HttpsURLConnectionImpl.java:263)
at fxlauncher.FXManifest.load(FXManifest.java:198)
at fxlauncher.AbstractLauncher.syncManifest(AbstractLauncher.java:223)
at fxlauncher.AbstractLauncher.updateManifest(AbstractLauncher.java:92)
at fxlauncher.Launcher.lambda$start$0(Launcher.java:140)
at java.lang.Thread.run(Thread.java:748)
Caused by: java.lang.RuntimeException: Unexpected error: java.security.InvalidAlgorithmParameterException: the trustAnchors parameter must be non-empty
at sun.security.validator.PKIXValidator.<init>(PKIXValidator.java:91)
at sun.security.validator.Validator.getInstance(Validator.java:181)
at sun.security.ssl.X509TrustManagerImpl.getValidator(X509TrustManagerImpl.java:312)
at sun.security.ssl.X509TrustManagerImpl.checkTrustedInit(X509TrustManagerImpl.java:171)
at sun.security.ssl.X509TrustManagerImpl.checkTrusted(X509TrustManagerImpl.java:184)
at sun.security.ssl.X509TrustManagerImpl.checkServerTrusted(X509TrustManagerImpl.java:124)
at sun.security.ssl.ClientHandshaker.serverCertificate(ClientHandshaker.java:1621)
at sun.security.ssl.ClientHandshaker.processMessage(ClientHandshaker.java:223)
at sun.security.ssl.Handshaker.processLoop(Handshaker.java:1037)
at sun.security.ssl.Handshaker.process_record(Handshaker.java:965)
at sun.security.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.java:1064)
at sun.security.ssl.SSLSocketImpl.performInitialHandshake(SSLSocketImpl.java:1367)
at sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1395)
... 11 more
Caused by: java.security.InvalidAlgorithmParameterException: the trustAnchors parameter must be non-empty
at java.security.cert.PKIXParameters.setTrustAnchors(PKIXParameters.java:200)
at java.security.cert.PKIXParameters.<init>(PKIXParameters.java:120)
at java.security.cert.PKIXBuilderParameters.<init>(PKIXBuilderParameters.java:104)
at sun.security.validator.PKIXValidator.<init>(PKIXValidator.java:89)
... 23 more
It would appear that the launcher can't handle updating via SSL.
It's probably just a mistake in configuration. How would I fix that error?
Hi guys,
I need to create 2 versions of the same application and I need to install them in the same windows machine.
The problem is that when i try to install the second application is saved in the same directory even if I changed the name of the application.
My installer plugin is following
<execution> <id>installer</id> <phase>install</phase> <goals> <goal>exec</goal> </goals> <configuration> <executable>${java.home}/../bin/javapackager</executable> <arguments> <argument>-deploy</argument> <argument>-native</argument> <argument>-outdir</argument> <argument>${app.installerdir}</argument> <argument>-outfile</argument> <argument>${app.filename}</argument> <argument>-srcdir</argument> <argument>${app.dir}</argument> <argument>-srcfiles</argument> <argument>fxlauncher.jar</argument> <argument>-appclass</argument> <argument>fxlauncher.Launcher</argument> <argument>-name</argument> <argument>${project.artifactId}</argument> <argument>-title</argument> <argument>${project.artifactId}</argument> <argument>-vendor</argument> <argument>${app.vendor}</argument> <argument>-BappVersion=${app.version}</argument> <argument>-Bicon=${project.basedir}/package/${application.title}</argument> <argument>-v</argument> <argument>-BjvmOptions=-Xmx1G</argument> <argument>-BjvmOptions=-XX:+UseG1GC <argument>-BjvmOptions=-XX:+UseStringDeduplication </arguments> </configuration> </execution>
Loking at the inno setup file (.ISS)
I found that the directory is correctly configured, but the AppId paramiter is the same :
[Setup] AppId={{fxlauncher}} AppName=prova
Thank you.
Hi
create-native-installer.bat
java -jar target\app\fxlauncher.jar
I got error with dialog saying "java.lang.ClassNotFoundException: no.tornado.FxlDemo"
Do I miss something ?
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.