hpfxd / pandaspigot Goto Github PK
View Code? Open in Web Editor NEWFork of Paper for 1.8.8 focused on improved performance and stability.
License: GNU General Public License v3.0
Fork of Paper for 1.8.8 focused on improved performance and stability.
License: GNU General Public License v3.0
Straightforward as title says. Might also be useful to set those knockback profiles per player (mostly to support something like practice servers with different types of gamemodes f.e combo/speed/nospeed).
Edit:
Editing Projectile knockback such as arrow, snowball, egg and rod would also be a nice to have.
PandaSpigot crashes every now and then (quite rarely, but it does happen) with the following exception:
crashlog.txt
Not sure what triggers it, it seems to be randomly?
Latest version f151e5a
Configuration:
pandaspigot.yml.txt
paper.yml.txt
I've done testing with the backported tick loop after having to remove it myself from a personal project.
Just wanted to address that there's some side effects that I couldn't resolve that this caused.
The main prominent issue encountered was a delay applied to every action. Hitting, Moving, Player Location, etc were all impacted and a noticeable delay is felt in combat or anything requiring you to have correct timing.
Just something for you guys to look into.
Just a plugin incompatibility issue I noticed when trying out PandaSpigot on my server.
Tacospigot already has this issue fixed, and I think it was fixed in these commits.
TacoSpigot/TacoSpigot@1ed1ff4
TacoSpigot/TacoSpigot@2778432
TacoSpigot/TacoSpigot@c2835df
Hi! Glad to see someone continuing to maintain the 1.8.8 spigot
This is a block placement issue that you can't make Dispensers/Droppers/Furnaces face each others
Reproducible with the latest versions of PaperSpigot 1.8.8 and Spigot 1.8.8
Related issues:
https://hub.spigotmc.org/jira/browse/SPIGOT-1401
https://hub.spigotmc.org/jira/browse/SPIGOT-2854
Fix patch by Paper 1.9.4:
https://github.com/PaperMC/Paper/blob/ver/1.9.4/Spigot-Server-Patches/0142-SPIGOT-1401-Fix-dispenser-dropper-furnace-placement.patch
Hello everyone,
As you can probably see in the title, my question is about how do I start to contribute? I cloned the project into Intellij IDEA, ran the panda script by right clicking, then run panda and it did absolutely nothing. I appreciate it your going to help, maybe I'm missing something, I don't know. Thanks!
Add in configuration file the option to change the server-name in F3 details
Since 1.8 doesn't have that event, it requieres workarounds to be able to achieve the similar behaviour. Backporting TabCompleteEvent from modern versions (afaik 1.12+) would be useful
Fix some crashes like FlamePaper. For the moment I use it because pandaspigot can be crashed very easy
My code for listening to the event was:
@EventHandler
public void onHandshake(PlayerHandshakeEvent event) {
System.out.println("AsyncPlayerPreLoginEvent fired!");
System.out.println(event.getOriginalHandshake());
}
Nothing was printed to console. Other events are working just fine so it (probably) isn't an issue on my end.
This suggestion might seem like a duplicate from #28 and #20, but it is not.
The changes that i'd like to be made are:
Seperate Friction into:
Horizontal Friction
Seperate Horizontal into:
Seperate extraHorizontal into:
Seperate Vertical into:
Seperate extraVertical into:
Allow players to have multiple knockback profiles, and an API to allow them to link it to their Practice, or whatever other gamemode plugin, onto!
That's about it for now. (Though i will suggest more later)
PS: I know this is very ambitious, but i want PandaSpigot to be the best spigot ever!
FAILURE: Build failed with an exception.
Task with path ':pandaspigot-server:shadowJar' not found in project ':paperclip'.
Run with --stacktrace option to get the stack trace.
Run with --info or --debug option to get more log output.
Run with --scan to get full insights.
BUILD FAILED in 1s
10 actionable tasks: 10 up-to-date
Failed to build Paperclip jar.
Ping command with configureable layout would also be ๐ฏ
knockback currently can not be closed autonomously, so that I can not use the plugin to modify knockback, he can not override the pandaspigot knockback
Also would like to add more custom knockback options like NachoSpigot
Internal Exception: io.netty.handler.codec.DecoderException: java.io.IOException: Packet 0/75 (ClientboundSetChunkCacheCenterPacket) was larger than I expected, found 51 bytes extra whilst reading packet 75
it happens when i restart the server, if i try to login a second time it doesn't kick me out
Hi Dev! Is it possible to add 1.7 protocol support for PandaSpigot? thank you very much!
This may be a stupid thing to suggest, but I think that multithreading would be great for PandaSpigot. Unless if it breaks plugins, but i've used other premium server softwares for 1.8, some of them include multithreading, and I can see 20 tps usually with these premium spigot builds, but after i've switched to PandaSpigot, I usually get more 19 ticks per seconds rather than 20.
1.8.8 use very old mysql which has been deprecated, please update it to latest
Hello, sorry for my English, but I came here to report that this fork has some kind of incompatibility with ViaVersion/ViaRewind.
We tested this fork in production, and many players playing on 1.7.10 reported being kicked from the server, here are screenshots of the errors, NOTE: for the server, it's as if they disconnected normally, so there are no errors.
One thing we noticed is that ViaVersion cannot get the PPS of the players when we are using this fork.
This problem only happens when we use the fork, we go back to the original spigot and we didn't have any report about it, the player is kicked randomly, there is no exact way to reproduce the error.
[11:57:24 INFO]: [SkinsRestorer] Enabling SkinsRestorer v14.2.3
[11:57:24 INFO]: [SkinsRestorer] Detected Minecraft v1_8_R3, using SpigotSkinRefresher.
[11:57:24 WARN]: java.lang.NoSuchMethodException: org.bukkit.Server$Spigot.getPaperConfig()
[11:57:24 WARN]: at java.lang.Class.getMethod(Class.java:1786)
[11:57:24 WARN]: at net.skinsrestorer.paper.PaperUtil.getPaperConfig(PaperUtil.java:28)
[11:57:24 WARN]: at net.skinsrestorer.bukkit.SkinsRestorer.checkProxyMode(SkinsRestorer.java:416)
[11:57:24 WARN]: at net.skinsrestorer.bukkit.SkinsRestorer.pluginStartup(SkinsRestorer.java:205)
[11:57:24 WARN]: at net.skinsrestorer.bukkit.SkinsRestorer.onEnable(SkinsRestorer.java:144)
[11:57:24 WARN]: at org.bukkit.plugin.java.JavaPlugin.setEnabled(JavaPlugin.java:321)
[11:57:24 WARN]: at org.bukkit.plugin.java.JavaPluginLoader.enablePlugin(JavaPluginLoader.java:332)
[11:57:24 WARN]: at org.bukkit.plugin.SimplePluginManager.enablePlugin(SimplePluginManager.java:445)
[11:57:24 WARN]: at org.bukkit.craftbukkit.v1_8_R3.CraftServer.loadPlugin(CraftServer.java:359)
[11:57:24 WARN]: at org.bukkit.craftbukkit.v1_8_R3.CraftServer.enablePlugins(CraftServer.java:318)
[11:57:24 WARN]: at net.minecraft.server.v1_8_R3.MinecraftServer.s(MinecraftServer.java:439)
[11:57:24 WARN]: at net.minecraft.server.v1_8_R3.MinecraftServer.k(MinecraftServer.java:403)
[11:57:24 WARN]: at net.minecraft.server.v1_8_R3.MinecraftServer.a(MinecraftServer.java:358)
[11:57:24 WARN]: at net.minecraft.server.v1_8_R3.DedicatedServer.init(DedicatedServer.java:301)
[11:57:24 WARN]: at net.minecraft.server.v1_8_R3.MinecraftServer.run(MinecraftServer.java:603)
[11:57:24 WARN]: at net.minecraft.server.v1_8_R3.MinecraftServer.lambda$spin$0(MinecraftServer.java:133)
[11:57:24 WARN]: at java.lang.Thread.run(Thread.java:748)
Hi guys!
I switched to PandaSpigot and i have some tps issues.
I tested with PaperSpigot java 8 and the TPS is 20* without any settings/plugins.
When i installed PandaSpigot java 17 the tps was never 20, maximum 19.90 (without any settings/plugins).
If players join (maximum 10) the tps is 19.50-19,80. I tried to generate a spark profiler and it seems that updateTimeLightAndEntities is consuming 15% from tick.
[14:50:26 WARN]: [Server thread] INFO org.ehcache.core.EhcacheManager - Cache 'player-cache' created in EhcacheManager.
Bad modern tickloop results reported by spark
My server test:
https://i.imgur.com/8UdZ7yL.png / https://spark.lucko.me/hgbbsePaCh
My friend server:
https://i.imgur.com/GRTTmdb.png / https://spark.lucko.me/PXnVGT7j3j
My other friend server:
https://i.imgur.com/7bO701C.png / https://spark.lucko.me/vw7Jcg95W0
[21:53:48 FATAL]: Error executing task
java.util.concurrent.ExecutionException: java.lang.IndexOutOfBoundsException: Index 49 out of bounds for length 45
at java.util.concurrent.FutureTask.report(FutureTask.java:122) ~[?:?]
at java.util.concurrent.FutureTask.get(FutureTask.java:191) ~[?:?]
at net.minecraft.server.v1_8_R3.SystemUtils.a(SystemUtils.java:12) ~[patched_1.8.8.jar:git-PandaSpigot-83]
at net.minecraft.server.v1_8_R3.MinecraftServer.B(MinecraftServer.java:880) ~[patched_1.8.8.jar:git-PandaSpigot-83]
at net.minecraft.server.v1_8_R3.DedicatedServer.B(DedicatedServer.java:412) ~[patched_1.8.8.jar:git-PandaSpigot-83]
at net.minecraft.server.v1_8_R3.MinecraftServer.A(MinecraftServer.java:814) ~[patched_1.8.8.jar:git-PandaSpigot-83]
at net.minecraft.server.v1_8_R3.MinecraftServer.run(MinecraftServer.java:647) ~[patched_1.8.8.jar:git-PandaSpigot-83]
at net.minecraft.server.v1_8_R3.MinecraftServer.lambda$spin$0(MinecraftServer.java:133) ~[patched_1.8.8.jar:git-PandaSpigot-83]
at java.lang.Thread.run(Thread.java:833) [?:?]
Caused by: java.lang.IndexOutOfBoundsException: Index 49 out of bounds for length 45
at jdk.internal.util.Preconditions.outOfBounds(Preconditions.java:64) ~[?:?]
at jdk.internal.util.Preconditions.outOfBoundsCheckIndex(Preconditions.java:70) ~[?:?]
at jdk.internal.util.Preconditions.checkIndex(Preconditions.java:266) ~[?:?]
at java.util.Objects.checkIndex(Objects.java:359) ~[?:?]
at java.util.ArrayList.get(ArrayList.java:427) ~[?:?]
at net.minecraft.server.v1_8_R3.Container.getSlot(Container.java:109) ~[patched_1.8.8.jar:git-PandaSpigot-83]
at net.minecraft.server.v1_8_R3.PlayerConnection.a(PlayerConnection.java:1732) ~[patched_1.8.8.jar:git-PandaSpigot-83]
at net.minecraft.server.v1_8_R3.PacketPlayInWindowClick.a(PacketPlayInWindowClick.java:17) ~[patched_1.8.8.jar:git-PandaSpigot-83]
at net.minecraft.server.v1_8_R3.PacketPlayInWindowClick.a(PacketPlayInWindowClick.java:5) ~[patched_1.8.8.jar:git-PandaSpigot-83]
at net.minecraft.server.v1_8_R3.PlayerConnectionUtils$1.run(PlayerConnectionUtils.java:9) ~[patched_1.8.8.jar:git-PandaSpigot-83]
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:539) ~[?:?]
at java.util.concurrent.FutureTask.run(FutureTask.java:264) ~[?:?]
at net.minecraft.server.v1_8_R3.SystemUtils.a(SystemUtils.java:11) ~[patched_1.8.8.jar:git-PandaSpigot-83]
... 6 more
When I select and area and do //setbiome jungle using WorldEdit, some places didn't change the biome, I do save-all and I restart the server after setting biomes.
skins in command menu
Customized heads in menu are without skins for players.
when the player enters my server and tries to see skins of any custom head
head (HEAD ITEM)
ONLY HAPPENS WITH PANDA
Hey, i'm trying to implement
https://github.com/hpfxd/PandaSpigot/blob/master/patches/server/0038-Optimize-VarInt-reading-and-writing.patch
but PacketPrepender doesn't let me add overriden allocateBuffer method also encode method needs List arg2 as the last argument, how to fix that? Thanks for help.
When using the https://github.com/NEZNAMY/TAB plugin, some players have white nicknames and are incorrectly sorted. For NachoSpigot this works without a problem.
Is CancelledPacketHandleException needed? Doesn't throwing the exception on every incoming packet cause performance problems? Thanks for answer!
[17:46:44 WARN]: Can't keep up! Is the server overloaded? Running 5057ms or 101 ticks behind
No Plugins
Do a cleanup to take out dead, unused codes, visually it looks very ugly
When setting setAllowFlight(true)
and setFlying(true)
the player is not forced into the flying state when they should be.
What should happen is when setFlying(true)
is ran on the player the player should be flying IE if it were set when they were falling from the sky it would set them to be flying.
The current workaround is to run setAllowFlight(true)
then run setFlying(true)
then run setAllowFlight(true)
again
I'm not really familiar with how the project is setup and how to modify it to create a PR however I have the fix if someone who knows how could do it.
File: CraftPlayer.java
Function: setFlying()
Change:
boolean needsUpdate = getHandle().abilities.canFly!= value;
To:
boolean needsUpdate = getHandle().abilities.isFlying != value;
Replacing server.jar from PaperSpigot to Panda causes NoSuchMethodException, full server logs:
https://paste.gg/p/anonymous/117dfa7c512f4696aea9ede5af713387
The fork is awesome but plugin compatibility is bad,do you have discord?
i need this event for my stack mobs plugin
15:57:31 INFO]: TPS from last 1m, 5m, 15m: *20.0, *20.0, *20.0
[15:57:39 INFO]: This server is running PandaSpigot version git-PandaSpigot-82 (MC: 1.8.8) (Implementing API version 1.8.8-R0.1-SNAPSHOT) (Git: 8da11b5)
[15:57:39 INFO]: Checking version, please wait...
[15:57:39 WARN]: java.io.IOException: Server returned HTTP response code: 403 for URL: https://api.github.com/repos/hpfxd/PandaSpigot/actions/workflows/build.yml/runs
[15:57:39 WARN]: at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
[15:57:39 WARN]: at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
[15:57:39 WARN]: at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
[15:57:39 WARN]: at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
[15:57:39 WARN]: at sun.net.www.protocol.http.HttpURLConnection$10.run(HttpURLConnection.java:1947)
[15:57:39 WARN]: at sun.net.www.protocol.http.HttpURLConnection$10.run(HttpURLConnection.java:1942)
[15:57:39 WARN]: at java.security.AccessController.doPrivileged(Native Method)
[15:57:39 WARN]: at sun.net.www.protocol.http.HttpURLConnection.getChainedException(HttpURLConnection.java:1941)
[15:57:39 WARN]: at sun.net.www.protocol.http.HttpURLConnection.getInputStream0(HttpURLConnection.java:1511)
[15:57:39 WARN]: at sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1495)
[15:57:39 WARN]: at sun.net.www.protocol.https.HttpsURLConnectionImpl.getInputStream(HttpsURLConnectionImpl.java:268)
[15:57:39 WARN]: at org.bukkit.command.defaults.VersionCommand.fetchActionsDistance(VersionCommand.java:284)
[15:57:39 WARN]: at org.bukkit.command.defaults.VersionCommand.obtainVersion(VersionCommand.java:195)
[15:57:39 WARN]: at org.bukkit.command.defaults.VersionCommand.access$000(VersionCommand.java:33)
[15:57:39 WARN]: at org.bukkit.command.defaults.VersionCommand$1.run(VersionCommand.java:178)
[15:57:39 WARN]: at java.lang.Thread.run(Thread.java:748)
[15:57:39 WARN]: Caused by: java.io.IOException: Server returned HTTP response code: 403 for URL: https://api.github.com/repos/hpfxd/PandaSpigot/actions/workflows/build.yml/runs
[15:57:39 WARN]: at sun.net.www.protocol.http.HttpURLConnection.getInputStream0(HttpURLConnection.java:1897)
[15:57:39 WARN]: at sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1495)
[15:57:39 WARN]: at java.net.HttpURLConnection.getResponseCode(HttpURLConnection.java:480)
[15:57:39 WARN]: at sun.net.www.protocol.https.HttpsURLConnectionImpl.getResponseCode(HttpsURLConnectionImpl.java:352)
[15:57:39 WARN]: at org.bukkit.command.defaults.VersionCommand.fetchActionsDistance(VersionCommand.java:283)
[15:57:39 WARN]: ... 4 more
[15:57:39 INFO]: Error obtaining version information
[16:13:39 ERROR]: Block at -687,33,338 is MOB_SPAWNER but has net.minecraft.server.v1_8_R3.TileEntityChest@5400ba1f. Bukkit will attempt to fix this, but there may be additional damage that we cannot recover.
It is not generating monsters on the map and /version generating error
There are a lot of vanilla bugs and glitches that can apparently be fixed and would help pvp servers a lot.
This includes the out of sight check:
https://user-images.githubusercontent.com/127549897/224417820-bcf20d93-cb31-447e-9c55-5b0e513fb4b8.mp4
And arrows sometimes going through players when they are running towards them:
https://user-images.githubusercontent.com/127549897/224417812-b7e2a0cc-5584-4bca-ad93-b6a6522a711c.mp4
Another vanilla bug that i would like to mention is when someone places a block next to a different player it can sometimes get them stuck in the block which makes them unable to look around and sometimes even move around.
Another block related glitch is when a player hugs a block their hitbox can extend out a little (i think?) so others are unable to place a block on top of that block. This is not the player getting stuck in the block since they are able to move around and look around.
If you are confused about anything that i said let me know.
[21:19:15 ERROR]: [TCPShield] Plugin TCPShield v2.5.6 has failed to register events for class net.tcpshield.tcpshield.bukkit.paper.handler.PaperHandshakeHandler because com/destroystokyo/paper/event/server/PaperServerListPingEvent does not exist.
This is caused due to the PlayerHandshakeEvent implementation, probably TCPShield only checks if the class exists to register the listeners for the PaperServerListPingEvent and as the PaperServerListPingEvent does not exist in PandaSpigot it cannot register the listener.
Possible fixes:
Hello, a player on my server just reported strange world generation. There are random chunks popped out of the world, land that is cut in half, and other horrible things. I find this odd because my server has no world generation plugins installed and never has. If it is of any use, the world generation glitch only occurs on the positive x-axis thousands of blocks out. Also, my server migrated from 1.5.2 to 1.8.8 a few months ago, so maybe that has an impact (keep in mind that the glitched chunks are new chunks, though)? The only reason that I can think of for this weird chunk generation is that the server was running low on ram while the player was reporting this stuff. However, I went to the place where the glitched chunks were reported after a server restart and the chunk generation is still glitched :/.
Hello, would it be to know if there was a possibility to patch the use bug enderpearl in the world border of vanilla minecraft?
Prior to using PandaSpigot, banning players using /ban worked perfectly fine. Now after using PandaSpigot, /ban simply kicks the player. I checked this by switching back to FlamePaper, and saw that bans were working fine. There aren't any console errors either.
when enchanting it has a delay of 2 seconds and the item stack it flakes, thus making it possible for players to enchant, for example, a stone
If you can add the patch (https://github.com/PaperMC/Paper/blob/ver/1.12.2/Spigot-Server-Patches/0030-Lighting-Queue.patch) I would appreciate it.
Everytime when starting the server I get the below error, this error causes npcs to not load into the world. This does not happen when running the server with regular paper. This happens right at the end of server start up.
[10:16:41 WARN]: [Citizens] Task #20 for Citizens v2.0.28-SNAPSHOT (build 2386) generated an exception
java.lang.NullPointerException: metadata
at io.netty.util.internal.ObjectUtil.checkNotNull(ObjectUtil.java:39) ~[patched_1.8.8.jar:git-PandaSpigot-79]
at io.netty.channel.DefaultChannelConfig.setRecvByteBufAllocator(DefaultChannelConfig.java:325) ~[patched_1.8.8.jar:git-PandaSpigot-79]
at io.netty.channel.DefaultChannelConfig.<init>(DefaultChannelConfig.java:79) ~[patched_1.8.8.jar:git-PandaSpigot-79]
at io.netty.channel.DefaultChannelConfig.<init>(DefaultChannelConfig.java:75) ~[patched_1.8.8.jar:git-PandaSpigot-79]
at net.citizensnpcs.nms.v1_8_R3.network.EmptyChannel.<init>(EmptyChannel.java:14) ~[?:?]
at net.citizensnpcs.nms.v1_8_R3.util.NMSImpl.initNetworkManager(NMSImpl.java:1333) ~[?:?]
at net.citizensnpcs.nms.v1_8_R3.network.EmptyNetworkManager.<init>(EmptyNetworkManager.java:12) ~[?:?]
at net.citizensnpcs.nms.v1_8_R3.entity.EntityHumanNPC.initialise(EntityHumanNPC.java:246) ~[?:?]
at net.citizensnpcs.nms.v1_8_R3.entity.EntityHumanNPC.<init>(EntityHumanNPC.java:82) ~[?:?]
at net.citizensnpcs.nms.v1_8_R3.entity.HumanController.createEntity(HumanController.java:54) ~[?:?]
at net.citizensnpcs.npc.AbstractEntityController.spawn(AbstractEntityController.java:41) ~[?:?]
at net.citizensnpcs.npc.CitizensNPC.spawn(CitizensNPC.java:255) ~[?:?]
at net.citizensnpcs.npc.CitizensNPC.load(CitizensNPC.java:160) ~[?:?]
at net.citizensnpcs.api.npc.SimpleNPCDataStore.loadInto(SimpleNPCDataStore.java:59) ~[?:?]
at net.citizensnpcs.Citizens$CitizensLoadTask.run(Citizens.java:510) ~[?:?]
at org.bukkit.craftbukkit.v1_8_R3.scheduler.CraftTask.run(CraftTask.java:59) ~[patched_1.8.8.jar:git-PandaSpigot-79]
at org.bukkit.craftbukkit.v1_8_R3.scheduler.CraftScheduler.mainThreadHeartbeat(CraftScheduler.java:352) ~[patched_1.8.8.jar:git-PandaSpigot-79]
at net.minecraft.server.v1_8_R3.MinecraftServer.B(MinecraftServer.java:889) ~[patched_1.8.8.jar:git-PandaSpigot-79]
at net.minecraft.server.v1_8_R3.DedicatedServer.B(DedicatedServer.java:412) ~[patched_1.8.8.jar:git-PandaSpigot-79]
at net.minecraft.server.v1_8_R3.MinecraftServer.A(MinecraftServer.java:814) ~[patched_1.8.8.jar:git-PandaSpigot-79]
at net.minecraft.server.v1_8_R3.MinecraftServer.run(MinecraftServer.java:647) ~[patched_1.8.8.jar:git-PandaSpigot-79]
at net.minecraft.server.v1_8_R3.MinecraftServer.lambda$spin$0(MinecraftServer.java:133) ~[patched_1.8.8.jar:git-PandaSpigot-79]
at java.lang.Thread.run(Thread.java:748) [?:1.8.0_291]
since this is a mantained fork, it will be cool to see Modern Velocity Forwarding support like on 1.13 and above on 1.8.8
When you set player's view distance with api to lower than what client have, you see ghost blocks/chunks, especially when walking away from them.
I did some investigating and this bug is related to block changes outside of player's view distance. What can we do about it?
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.