Git Product home page Git Product logo

Comments (18)

ProjectInfinity avatar ProjectInfinity commented on August 20, 2024

There definitely is a bug somewhere causing the database to lock, I have experienced this myself a few times when using SQLite lately. I am however not sure how it happens, or exactly where it happens.

If you use MySQL, this will not occur.

from reportrts.

jordansne avatar jordansne commented on August 20, 2024

Just question: Will the /reportrts stats command still work with MySQL?

Thanks!

from reportrts.

ProjectInfinity avatar ProjectInfinity commented on August 20, 2024

That it should, let me know if it doesn't and I'll take a look.

from reportrts.

krisdestruction avatar krisdestruction commented on August 20, 2024

I am using MySQL and it appears to lock as well. Also, next time close a 4 month old bug.

from reportrts.

ProjectInfinity avatar ProjectInfinity commented on August 20, 2024

MySQL is incapable of locking. I have been using it for about a year now. MySQL has never once had an issue.

from reportrts.

krisdestruction avatar krisdestruction commented on August 20, 2024

Weird, I've had to reload this plugin a few times in the past week. I'll see if there are any logs I can pull out.

from reportrts.

krisdestruction avatar krisdestruction commented on August 20, 2024

This is how it bugs out.

2013-02-14 20:15:43 [INFO] CH: Running original command on player krisdestruction ----> /ticket test
2013-02-14 20:15:43 [INFO] krisdestruction issued server command: /modreq test
2013-02-14 20:15:43 [SEVERE] com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException: No operations allowed after connection closed.Connection was implicitly closed by the driver.
2013-02-14 20:15:43 [SEVERE] at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
2013-02-14 20:15:43 [SEVERE] at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57)
2013-02-14 20:15:43 [SEVERE] at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
2013-02-14 20:15:43 [SEVERE] at java.lang.reflect.Constructor.newInstance(Constructor.java:525)
2013-02-14 20:15:43 [SEVERE] at com.mysql.jdbc.Util.handleNewInstance(Util.java:407)
2013-02-14 20:15:43 [SEVERE] at com.mysql.jdbc.Util.getInstance(Util.java:382)
2013-02-14 20:15:43 [SEVERE] at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1013)
2013-02-14 20:15:43 [SEVERE] at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:987)
2013-02-14 20:15:43 [SEVERE] at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:982)
2013-02-14 20:15:43 [SEVERE] at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:927)
2013-02-14 20:15:43 [SEVERE] at com.mysql.jdbc.ConnectionImpl.throwConnectionClosedException(ConnectionImpl.java:1213)
2013-02-14 20:15:43 [SEVERE] at com.mysql.jdbc.ConnectionImpl.checkClosed(ConnectionImpl.java:1200)
2013-02-14 20:15:43 [SEVERE] at com.mysql.jdbc.ConnectionImpl.prepareStatement(ConnectionImpl.java:4203)
2013-02-14 20:15:43 [SEVERE] at com.mysql.jdbc.ConnectionImpl.prepareStatement(ConnectionImpl.java:4169)
2013-02-14 20:15:43 [SEVERE] at com.nyancraft.reportrts.persistence.SQLDB.getUserId(SQLDB.java:78)
2013-02-14 20:15:43 [SEVERE] at com.nyancraft.reportrts.command.ModreqCommand.onCommand(ModreqCommand.java:54)
2013-02-14 20:15:43 [SEVERE] at org.bukkit.command.PluginCommand.execute(PluginCommand.java:44)
2013-02-14 20:15:43 [SEVERE] at org.bukkit.command.SimpleCommandMap.dispatch(SimpleCommandMap.java:186)
2013-02-14 20:15:43 [SEVERE] at org.bukkit.craftbukkit.v1_4_R1.CraftServer.dispatchCommand(CraftServer.java:514)
2013-02-14 20:15:43 [SEVERE] at net.minecraft.server.v1_4_R1.PlayerConnection.handleCommand(PlayerConnection.java:980)
2013-02-14 20:15:43 [SEVERE] at net.minecraft.server.v1_4_R1.PlayerConnection.chat(PlayerConnection.java:898)
2013-02-14 20:15:43 [SEVERE] at org.bukkit.craftbukkit.v1_4_R1.entity.CraftPlayer.chat(CraftPlayer.java:234)
2013-02-14 20:15:43 [SEVERE] at com.laytonsmith.abstraction.bukkit.BukkitMCPlayer.chat(BukkitMCPlayer.java:53)
2013-02-14 20:15:43 [SEVERE] at com.laytonsmith.core.AliasCore$1.done(AliasCore.java:119)
2013-02-14 20:15:43 [SEVERE] at com.laytonsmith.core.MScriptCompiler.execute(MScriptCompiler.java:527)
2013-02-14 20:15:43 [SEVERE] at com.laytonsmith.core.Script.run(Script.java:179)
2013-02-14 20:15:43 [SEVERE] at com.laytonsmith.core.AliasCore.alias(AliasCore.java:104)
2013-02-14 20:15:43 [SEVERE] at com.laytonsmith.commandhelper.CommandHelperListener.runAlias(CommandHelperListener.java:79)
2013-02-14 20:15:43 [SEVERE] at com.laytonsmith.commandhelper.CommandHelperListener.onPlayerCommandPreprocess(CommandHelperListener.java:119)
2013-02-14 20:15:43 [SEVERE] at sun.reflect.GeneratedMethodAccessor238.invoke(Unknown Source)
2013-02-14 20:15:43 [SEVERE] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
2013-02-14 20:15:43 [SEVERE] at java.lang.reflect.Method.invoke(Method.java:601)
2013-02-14 20:15:43 [SEVERE] at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:425)
2013-02-14 20:15:43 [SEVERE] at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:62)
2013-02-14 20:15:43 [SEVERE] at org.bukkit.plugin.TimedRegisteredListener.callEvent(TimedRegisteredListener.java:35)
2013-02-14 20:15:43 [SEVERE] at org.bukkit.plugin.SimplePluginManager.fireEvent(SimplePluginManager.java:477)
2013-02-14 20:15:43 [SEVERE] at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:462)
2013-02-14 20:15:43 [SEVERE] at net.minecraft.server.v1_4_R1.PlayerConnection.handleCommand(PlayerConnection.java:972)
2013-02-14 20:15:43 [SEVERE] at net.minecraft.server.v1_4_R1.PlayerConnection.chat(PlayerConnection.java:898)
2013-02-14 20:15:43 [SEVERE] at net.minecraft.server.v1_4_R1.PlayerConnection.a(PlayerConnection.java:853)
2013-02-14 20:15:43 [SEVERE] at net.minecraft.server.v1_4_R1.Packet3Chat.handle(Packet3Chat.java:44)
2013-02-14 20:15:43 [SEVERE] at net.minecraft.server.v1_4_R1.NetworkManager.b(NetworkManager.java:290)
2013-02-14 20:15:43 [SEVERE] at net.minecraft.server.v1_4_R1.PlayerConnection.d(PlayerConnection.java:113)
2013-02-14 20:15:43 [SEVERE] at net.minecraft.server.v1_4_R1.ServerConnection.b(SourceFile:39)
2013-02-14 20:15:43 [SEVERE] at net.minecraft.server.v1_4_R1.DedicatedServerConnection.b(SourceFile:30)
2013-02-14 20:15:43 [SEVERE] at net.minecraft.server.v1_4_R1.MinecraftServer.r(MinecraftServer.java:598)
2013-02-14 20:15:43 [SEVERE] at net.minecraft.server.v1_4_R1.DedicatedServer.r(DedicatedServer.java:224)
2013-02-14 20:15:43 [SEVERE] at net.minecraft.server.v1_4_R1.MinecraftServer.q(MinecraftServer.java:494)
2013-02-14 20:15:43 [SEVERE] at net.minecraft.server.v1_4_R1.MinecraftServer.run(MinecraftServer.java:427)
2013-02-14 20:15:43 [SEVERE] at net.minecraft.server.v1_4_R1.ThreadServerApplication.run(SourceFile:849)
2013-02-14 20:15:43 [SEVERE] Caused by: com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: The last packet successfully received from the server was 48,403,913 milliseconds ago. The last packet sent successfully to the server was 48,403,913 milliseconds ago. is longer than the server configured value of 'wait_timeout'. You should consider either expiring and/or testing connection validity before use in your application, increasing the server configured values for client timeouts, or using the Connector/J connection property 'autoReconnect=true' to avoid this problem.
2013-02-14 20:15:43 [SEVERE] at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
2013-02-14 20:15:43 [SEVERE] at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57)
2013-02-14 20:15:43 [SEVERE] at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
2013-02-14 20:15:43 [SEVERE] at java.lang.reflect.Constructor.newInstance(Constructor.java:525)
2013-02-14 20:15:43 [SEVERE] at com.mysql.jdbc.Util.handleNewInstance(Util.java:407)
2013-02-14 20:15:43 [SEVERE] at com.mysql.jdbc.SQLError.createCommunicationsException(SQLError.java:1116)
2013-02-14 20:15:43 [SEVERE] at com.mysql.jdbc.MysqlIO.send(MysqlIO.java:3348)
2013-02-14 20:15:43 [SEVERE] at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:1967)
2013-02-14 20:15:43 [SEVERE] at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:2140)
2013-02-14 20:15:43 [SEVERE] at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2626)
2013-02-14 20:15:43 [SEVERE] at com.mysql.jdbc.PreparedStatement.executeInternal(PreparedStatement.java:2111)
2013-02-14 20:15:43 [SEVERE] at com.mysql.jdbc.PreparedStatement.executeQuery(PreparedStatement.java:2273)
2013-02-14 20:15:43 [SEVERE] at com.nyancraft.reportrts.persistence.SQLDB.getUserId(SQLDB.java:80)
2013-02-14 20:15:43 [SEVERE] ... 35 more
2013-02-14 20:15:43 [SEVERE] Caused by: java.net.SocketException: Broken pipe
2013-02-14 20:15:43 [SEVERE] at java.net.SocketOutputStream.socketWrite0(Native Method)
2013-02-14 20:15:43 [SEVERE] at java.net.SocketOutputStream.socketWrite(SocketOutputStream.java:109)
2013-02-14 20:15:43 [SEVERE] at java.net.SocketOutputStream.write(SocketOutputStream.java:153)
2013-02-14 20:15:43 [SEVERE] at java.io.BufferedOutputStream.flushBuffer(BufferedOutputStream.java:82)
2013-02-14 20:15:43 [SEVERE] at java.io.BufferedOutputStream.flush(BufferedOutputStream.java:140)
2013-02-14 20:15:43 [SEVERE] at com.mysql.jdbc.MysqlIO.send(MysqlIO.java:3329)
2013-02-14 20:15:43 [SEVERE] ... 41 more

This is how I reloaded it.

2013-02-14 20:15:57 [INFO] [ReportRTS] Disabling ReportRTS v1.0.0-b110
2013-02-14 20:15:57 [INFO] [PluginReloader] krisdestruction has unloaded ReportRTS.
2013-02-14 20:15:57 [INFO] [ReportRTS] Enabling ReportRTS v1.0.0-b110
2013-02-14 20:15:57 [INFO] [ReportRTS] Connecting to MySQL.
2013-02-14 20:15:57 [INFO] [ReportRTS] Successfully connected and checked tables, will use MySQL.
2013-02-14 20:15:57 [INFO] [ReportRTS] Vault and a compatible permissions manager was found. Using Vault for permissions.
2013-02-14 20:15:57 [INFO] [PluginReloader] krisdestruction has loaded ReportRTS.
2013-02-14 20:15:57 [INFO] [PluginReloader] krisdestruction reloaded ReportRTS.

Tell me if you need anything else!

from reportrts.

krisdestruction avatar krisdestruction commented on August 20, 2024

More logs!

2013-02-12 18:01:59 [INFO] CH: Running original command on player zadiamondmasta ----> /ticket my fence was stolen and my friends house is completly gone
2013-02-12 18:01:59 [INFO] zadiamondmasta issued server command: /modreq my fence was stolen and my friends house is completly gone
2013-02-12 18:01:59 [SEVERE] com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications link failure

The last packet successfully received from the server was 29,402,223 milliseconds ago. The last packet sent successfully to the server was 0 milliseconds ago.
2013-02-12 18:01:59 [SEVERE] at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
2013-02-12 18:01:59 [SEVERE] at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57)
2013-02-12 18:01:59 [SEVERE] at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
2013-02-12 18:01:59 [SEVERE] at java.lang.reflect.Constructor.newInstance(Constructor.java:525)
2013-02-12 18:01:59 [SEVERE] at com.mysql.jdbc.Util.handleNewInstance(Util.java:407)
2013-02-12 18:01:59 [SEVERE] at com.mysql.jdbc.SQLError.createCommunicationsException(SQLError.java:1116)
2013-02-12 18:01:59 [SEVERE] at com.mysql.jdbc.MysqlIO.reuseAndReadPacket(MysqlIO.java:3082)
2013-02-12 18:01:59 [SEVERE] at com.mysql.jdbc.MysqlIO.reuseAndReadPacket(MysqlIO.java:2968)
2013-02-12 18:01:59 [SEVERE] at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3516)
2013-02-12 18:01:59 [SEVERE] at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:1986)
2013-02-12 18:01:59 [SEVERE] at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:2140)
2013-02-12 18:01:59 [SEVERE] at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2626)
2013-02-12 18:01:59 [SEVERE] at com.mysql.jdbc.PreparedStatement.executeInternal(PreparedStatement.java:2111)
2013-02-12 18:01:59 [SEVERE] at com.mysql.jdbc.PreparedStatement.executeQuery(PreparedStatement.java:2273)
2013-02-12 18:01:59 [SEVERE] at com.nyancraft.reportrts.persistence.SQLDB.getUserId(SQLDB.java:80)
2013-02-12 18:01:59 [SEVERE] at com.nyancraft.reportrts.command.ModreqCommand.onCommand(ModreqCommand.java:54)
2013-02-12 18:01:59 [SEVERE] at org.bukkit.command.PluginCommand.execute(PluginCommand.java:44)
2013-02-12 18:01:59 [SEVERE] at org.bukkit.command.SimpleCommandMap.dispatch(SimpleCommandMap.java:186)
2013-02-12 18:01:59 [SEVERE] at org.bukkit.craftbukkit.v1_4_R1.CraftServer.dispatchCommand(CraftServer.java:514)
2013-02-12 18:01:59 [SEVERE] at net.minecraft.server.v1_4_R1.PlayerConnection.handleCommand(PlayerConnection.java:980)
2013-02-12 18:01:59 [SEVERE] at net.minecraft.server.v1_4_R1.PlayerConnection.chat(PlayerConnection.java:898)
2013-02-12 18:01:59 [SEVERE] at org.bukkit.craftbukkit.v1_4_R1.entity.CraftPlayer.chat(CraftPlayer.java:234)
2013-02-12 18:01:59 [SEVERE] at com.laytonsmith.abstraction.bukkit.BukkitMCPlayer.chat(BukkitMCPlayer.java:53)
2013-02-12 18:01:59 [SEVERE] at com.laytonsmith.core.AliasCore$1.done(AliasCore.java:119)
2013-02-12 18:01:59 [SEVERE] at com.laytonsmith.core.MScriptCompiler.execute(MScriptCompiler.java:527)
2013-02-12 18:01:59 [SEVERE] at com.laytonsmith.core.Script.run(Script.java:179)
2013-02-12 18:01:59 [SEVERE] at com.laytonsmith.core.AliasCore.alias(AliasCore.java:104)
2013-02-12 18:01:59 [SEVERE] at com.laytonsmith.commandhelper.CommandHelperListener.runAlias(CommandHelperListener.java:79)
2013-02-12 18:01:59 [SEVERE] at com.laytonsmith.commandhelper.CommandHelperListener.onPlayerCommandPreprocess(CommandHelperListener.java:119)
2013-02-12 18:01:59 [SEVERE] at sun.reflect.GeneratedMethodAccessor238.invoke(Unknown Source)
2013-02-12 18:01:59 [SEVERE] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
2013-02-12 18:01:59 [SEVERE] at java.lang.reflect.Method.invoke(Method.java:601)
2013-02-12 18:01:59 [SEVERE] at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:425)
2013-02-12 18:01:59 [SEVERE] at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:62)
2013-02-12 18:01:59 [SEVERE] at org.bukkit.plugin.TimedRegisteredListener.callEvent(TimedRegisteredListener.java:35)
2013-02-12 18:01:59 [SEVERE] at org.bukkit.plugin.SimplePluginManager.fireEvent(SimplePluginManager.java:477)
2013-02-12 18:01:59 [SEVERE] at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:462)
2013-02-12 18:01:59 [SEVERE] at net.minecraft.server.v1_4_R1.PlayerConnection.handleCommand(PlayerConnection.java:972)
2013-02-12 18:01:59 [SEVERE] at net.minecraft.server.v1_4_R1.PlayerConnection.chat(PlayerConnection.java:898)
2013-02-12 18:01:59 [SEVERE] at net.minecraft.server.v1_4_R1.PlayerConnection.a(PlayerConnection.java:853)
2013-02-12 18:01:59 [SEVERE] at net.minecraft.server.v1_4_R1.Packet3Chat.handle(Packet3Chat.java:44)
2013-02-12 18:01:59 [SEVERE] at net.minecraft.server.v1_4_R1.NetworkManager.b(NetworkManager.java:290)
2013-02-12 18:01:59 [SEVERE] at net.minecraft.server.v1_4_R1.PlayerConnection.d(PlayerConnection.java:113)
2013-02-12 18:01:59 [SEVERE] at net.minecraft.server.v1_4_R1.ServerConnection.b(SourceFile:39)
2013-02-12 18:01:59 [SEVERE] at net.minecraft.server.v1_4_R1.DedicatedServerConnection.b(SourceFile:30)
2013-02-12 18:01:59 [SEVERE] at net.minecraft.server.v1_4_R1.MinecraftServer.r(MinecraftServer.java:598)
2013-02-12 18:01:59 [SEVERE] at net.minecraft.server.v1_4_R1.DedicatedServer.r(DedicatedServer.java:224)
2013-02-12 18:01:59 [SEVERE] at net.minecraft.server.v1_4_R1.MinecraftServer.q(MinecraftServer.java:494)
2013-02-12 18:01:59 [SEVERE] at net.minecraft.server.v1_4_R1.MinecraftServer.run(MinecraftServer.java:427)
2013-02-12 18:01:59 [SEVERE] at net.minecraft.server.v1_4_R1.ThreadServerApplication.run(SourceFile:849)
2013-02-12 18:01:59 [SEVERE] Caused by: java.io.EOFException: Can not read response from server. Expected to read 4 bytes, read 0 bytes before connection was unexpectedly lost.
2013-02-12 18:01:59 [SEVERE] at com.mysql.jdbc.MysqlIO.readFully(MysqlIO.java:2529)
2013-02-12 18:01:59 [SEVERE] at com.mysql.jdbc.MysqlIO.reuseAndReadPacket(MysqlIO.java:2979)
2013-02-12 18:01:59 [SEVERE] ... 43 more

from reportrts.

ProjectInfinity avatar ProjectInfinity commented on August 20, 2024

Your MySQL server closed the connection, the plugin did nothing wrong.

from reportrts.

krisdestruction avatar krisdestruction commented on August 20, 2024

Why does it close it and if you don't know, why doesn't the plugin re-open the connection?

from reportrts.

ProjectInfinity avatar ProjectInfinity commented on August 20, 2024

I don't know why it closes, that is up to you to find out. The plugin is instructed to retry the connection as seen here. https://github.com/ProjectInfinity/ReportRTS/blob/master/src/main/java/lib/PatPeter/SQLibrary/MySQL.java#L85

It seems like the problem lies with you, is the MySQL server remote or local?

from reportrts.

krisdestruction avatar krisdestruction commented on August 20, 2024

Fair enough. Any tips on isolating the issue on my end?

MySQL is local on a dedi. Can you keep polling for a connection?

from reportrts.

ProjectInfinity avatar ProjectInfinity commented on August 20, 2024

I suggest watching the MySQL logs, and any other plugin that might be using MySQL. Do you run any other plugin than ReportRTS that utilizes SQLibrary?

from reportrts.

krisdestruction avatar krisdestruction commented on August 20, 2024

I don't know if any other plugin than ReportRTS utilizes the SQLibrary but I do know that other plugins use my MySQL connection perfectly without disconnecting or requiring a reload.

from reportrts.

krisdestruction avatar krisdestruction commented on August 20, 2024

Would this be the cause of the problem?
http://dev.bukkit.org/server-mods/sqlibrary/forum/help/48827-losing-mysql-connection/#p4

from reportrts.

krisdestruction avatar krisdestruction commented on August 20, 2024

I'm not sure if you considered this in your development plan, but I believe PatPeter the developer of SQLibrary is requiring that developers do not include the SQLibrary class files in the plugin but require that the JAR installed by end users. From the looks of it, BukkitDevs have started rejecting uploads that contain SQLibrary class files.

from reportrts.

ProjectInfinity avatar ProjectInfinity commented on August 20, 2024

I am aware of this. That is why I have decided to drop SQLibrary in favor of my own system that is going to work similarly as ReportRTS is already built around the system that is currently in place.

from reportrts.

SuperSpyTX avatar SuperSpyTX commented on August 20, 2024

PatPeter requiring users to install JAR manually
BukkitDev rejecting uploads with SQLibrary JAR
Such greedy developer (PatPeter)

from reportrts.

Related Issues (20)

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.