olliz0r / ledybot Goto Github PK
View Code? Open in Web Editor NEWA pokemon sun/moon giveaway bot 3DS. Needs NTR and Input Redirection to work.
License: GNU General Public License v3.0
A pokemon sun/moon giveaway bot 3DS. Needs NTR and Input Redirection to work.
License: GNU General Public License v3.0
Let's say at the end of the findfromstart state, I wanted to go to the next page instead of starting over (if not foundlastpage of course). I know there's other logic and what not needed, but i'm just interested in the bit that would increment one page.
i want to give out unique one not copy of one. i make several ditto with different pid, drag these files to giveawaydeatil and set the count to 1, but this doesn't work. only the first row, the pokemon will be given out
contact me on Discord, i have most addresses found for USUM.
at least it working for me.
" a Serious Guy "#4111
Gen 7 allows for 12 character nicknames, but ledybot snips off the last two characters. For example, user deposits "adamantflare", they don't get that pokemon and it shows up in the list as "adamantfla"
You don't have to use it of course. Figured id let you know about it since it may help with some confusion in regards to how to use this amazing tool
How are you folks bypassing the GTS megastone filter?
See the end of this message for details on invoking
just-in-time (JIT) debugging instead of this dialog box.
************** Exception Text **************
System.Configuration.ConfigurationErrorsException: Configuration system failed to initialize ---> System.Configuration.ConfigurationErrorsException: '.', hexadecimal value 0x00, is an invalid character. Line 9, position 1. (C:\Users\Ikai\AppData\Local\Ledybot\Ledybot.exe_Url_m4xs41u2kkpaqh13ozria2wlf5njj5pk\1.0.0.0\user.config line 9) ---> System.Xml.XmlException: '.', hexadecimal value 0x00, is an invalid character. Line 9, position 1.
at System.Xml.XmlTextReaderImpl.Throw(Exception e)
at System.Xml.XmlTextReaderImpl.Throw(String res, String[] args)
at System.Xml.XmlTextReaderImpl.ParseText(Int32& startPos, Int32& endPos, Int32& outOrChars)
at System.Xml.XmlTextReaderImpl.ParseText()
at System.Xml.XmlTextReaderImpl.ParseElementContent()
at System.Xml.XmlTextReaderImpl.Read()
at System.Xml.XmlTextReader.Read()
at System.Configuration.XmlUtil.StrictReadToNextElement(ExceptionAction action)
at System.Configuration.BaseConfigurationRecord.ScanSectionsRecursive(XmlUtil xmlUtil, String parentConfigKey, Boolean inLocation, String locationSubPath, OverrideModeSetting overrideMode, Boolean skipInChildApps)
at System.Configuration.BaseConfigurationRecord.ScanSectionsRecursive(XmlUtil xmlUtil, String parentConfigKey, Boolean inLocation, String locationSubPath, OverrideModeSetting overrideMode, Boolean skipInChildApps)
at System.Configuration.BaseConfigurationRecord.ScanSections(XmlUtil xmlUtil)
at System.Configuration.BaseConfigurationRecord.InitConfigFromFile()
--- End of inner exception stack trace ---
at System.Configuration.ConfigurationSchemaErrors.ThrowIfErrors(Boolean ignoreLocal)
at System.Configuration.BaseConfigurationRecord.ThrowIfParseErrors(ConfigurationSchemaErrors schemaErrors)
at System.Configuration.BaseConfigurationRecord.ThrowIfInitErrors()
at System.Configuration.ClientConfigurationSystem.OnConfigRemoved(Object sender, InternalConfigEventArgs e)
--- End of inner exception stack trace ---
at System.Configuration.ClientConfigurationSystem.OnConfigRemoved(Object sender, InternalConfigEventArgs e)
at System.Configuration.Internal.InternalConfigRoot.OnConfigRemoved(InternalConfigEventArgs e)
at System.Configuration.Internal.InternalConfigRoot.RemoveConfigImpl(String configPath, BaseConfigurationRecord configRecord)
at System.Configuration.BaseConfigurationRecord.GetSectionRecursive(String configKey, Boolean getLkg, Boolean checkPermission, Boolean getRuntimeObject, Boolean requestIsHere, Object& result, Object& resultRuntimeObject)
at System.Configuration.BaseConfigurationRecord.GetSection(String configKey)
at System.Configuration.ClientConfigurationSystem.System.Configuration.Internal.IInternalConfigSystem.GetSection(String sectionName)
at System.Configuration.ConfigurationManager.GetSection(String sectionName)
at System.Configuration.ClientSettingsStore.ReadSettings(String sectionName, Boolean isUserScoped)
at System.Configuration.LocalFileSettingsProvider.GetPropertyValues(SettingsContext context, SettingsPropertyCollection properties)
at System.Configuration.SettingsBase.GetPropertiesFromProvider(SettingsProvider provider)
at System.Configuration.SettingsBase.GetPropertyValueByName(String propertyName)
at System.Configuration.SettingsBase.get_Item(String propertyName)
at System.Configuration.ApplicationSettingsBase.GetPropertyValue(String propertyName)
at System.Configuration.ApplicationSettingsBase.get_Item(String propertyName)
at Ledybot.Properties.Settings.get_IP()
at Ledybot.MainForm.MainForm_Load(Object sender, EventArgs e)
at System.Windows.Forms.Form.OnLoad(EventArgs e)
at System.Windows.Forms.Form.OnCreateControl()
at System.Windows.Forms.Control.CreateControl(Boolean fIgnoreVisible)
at System.Windows.Forms.Control.CreateControl()
at System.Windows.Forms.Control.WmShowWindow(Message& m)
at System.Windows.Forms.Control.WndProc(Message& m)
at System.Windows.Forms.ScrollableControl.WndProc(Message& m)
at System.Windows.Forms.Form.WmShowWindow(Message& m)
at System.Windows.Forms.Form.WndProc(Message& m)
at System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
at System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
at System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)
************** Loaded Assemblies **************
mscorlib
Assembly Version: 4.0.0.0
Win32 Version: 4.7.2600.0 built by: NET471REL1LAST
CodeBase: file:///C:/Windows/Microsoft.NET/Framework/v4.0.30319/mscorlib.dll
----------------------------------------
Ledybot
Assembly Version: 1.0.0.0
Win32 Version: 1.0.0.0
CodeBase: file:///C:/Users/Ikai/Desktop/Ledybot/Ledybot.exe
----------------------------------------
System.Windows.Forms
Assembly Version: 4.0.0.0
Win32 Version: 4.7.2556.0 built by: NET471REL1
CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/System.Windows.Forms/v4.0_4.0.0.0__b77a5c561934e089/System.Windows.Forms.dll
----------------------------------------
System
Assembly Version: 4.0.0.0
Win32 Version: 4.7.2556.0 built by: NET471REL1
CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/System/v4.0_4.0.0.0__b77a5c561934e089/System.dll
----------------------------------------
System.Drawing
Assembly Version: 4.0.0.0
Win32 Version: 4.7.2556.0 built by: NET471REL1
CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/System.Drawing/v4.0_4.0.0.0__b03f5f7f11d50a3a/System.Drawing.dll
----------------------------------------
System.Configuration
Assembly Version: 4.0.0.0
Win32 Version: 4.7.2556.0 built by: NET471REL1
CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/System.Configuration/v4.0_4.0.0.0__b03f5f7f11d50a3a/System.Configuration.dll
----------------------------------------
System.Core
Assembly Version: 4.0.0.0
Win32 Version: 4.7.2600.0 built by: NET471REL1LAST
CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/System.Core/v4.0_4.0.0.0__b77a5c561934e089/System.Core.dll
----------------------------------------
System.Xml
Assembly Version: 4.0.0.0
Win32 Version: 4.7.2612.0 built by: NET471REL1LAST_B
CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/System.Xml/v4.0_4.0.0.0__b77a5c561934e089/System.Xml.dll
----------------------------------------
System.Data
Assembly Version: 4.0.0.0
Win32 Version: 4.7.2556.0 built by: NET471REL1
CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_32/System.Data/v4.0_4.0.0.0__b77a5c561934e089/System.Data.dll
----------------------------------------
System.Numerics
Assembly Version: 4.0.0.0
Win32 Version: 4.7.2556.0 built by: NET471REL1
CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/System.Numerics/v4.0_4.0.0.0__b77a5c561934e089/System.Numerics.dll
----------------------------------------
************** JIT Debugging **************
To enable just-in-time (JIT) debugging, the .config file for this
application or computer (machine.config) must have the
jitDebugging value set in the system.windows.forms section.
The application must also be compiled with debugging
enabled.
For example:
<configuration>
<system.windows.forms jitDebugging="true" />
</configuration>
When JIT debugging is enabled, any unhandled exception
will be sent to the JIT debugger registered on the computer
rather than be handled by this dialog box.
How do I fix this? I've tried reinstalling Ledybot multiple times, running it as administrator, and restarting my computer.
EDIT: TEMP FIX, but I installed Ledybot to my Documents area, and it started to work again. Area I was using Ledybot was Desktop.
I am having a huge issue connecting Ledybot to my 3DS. I’m running Luma3DS 9.0 and i literally have the latest versions of everything. i’m running NTRBoot, NTRs debugger, InputDirection, I’m online in-game, my DS’ IP address is correct, and I still can’t connect Ledybot to my 3DS. I’ve tried posting this question so many times and ive gotten absolutely no answer from anybody. I also have ultra moon if that is of any use to anyone. I have no clue if I am doing something wrong or otherwise. Can somebody please help me figure out what I am doing wrong? Thank you :)
Is there a way to make it so a person can only trade for 1 of each pokemon i have in the Bot?
When the bot search for a Pokémon, if the game it's in Spanish, instead trade with people, the bot start looping over and over without make trades. I think it's a error with the text because in Spanish the text it's a bit diferent (For example, Nivel instead level, "Del 91 al 100" instead "91 or higher", Pokémon deseado instead Pokémon wanted...)
Hope you could fix this issues in the future :)
Hello all. So I downloaded and built the latest source with the updated 1.2 offsets and I can finally connect on UM without crashing anymore. Sadly though, now I have another issue.
When I press Start, so that the bot can start doing its thing on GTS, I get the following error http://prntscr.com/jtcrl7. Below I will list the whole details of the error so that can help someone identify the cause and hopefully help me fix it.
See the end of this message for details on invoking
just-in-time (JIT) debugging instead of this dialog box.
************** Exception Text **************
System.Net.Sockets.SocketException (0x80004005): No connection could be made because the target machine actively refused it 127.0.0.1:3001
at System.Net.Sockets.Socket.DoConnect(EndPoint endPointSnapshot, SocketAddress socketAddress)
at System.Net.Sockets.Socket.Connect(EndPoint remoteEP)
at System.Net.Sockets.TcpClient.Connect(IPEndPoint remoteEP)
at Ledybot.GTSBot7..ctor(Int32 iP, Int32 iPtF, Int32 iPtFGender, Int32 iPtFLevel, Boolean bBlacklist, Boolean bReddit, Int32 iSearchDirection, String waittime, String consoleName, Boolean useLedySync, String ledySyncIp, String ledySyncPort, Int32 game, Boolean useLedybotTV, String ledybotTVIp, String ledybotTVPort) in C:\Users\maver\Desktop\LedyBot Pro Version\Ledybot-master\Ledybot\GTSBot7.cs:line 181
at Ledybot.MainForm.<btn_Start_Click>d__33.MoveNext() in C:\Users\maver\Desktop\LedyBot Pro Version\Ledybot-master\Ledybot\Form1.cs:line 222
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.CompilerServices.AsyncMethodBuilderCore.<>c.b__6_0(Object state)
************** JIT Debugging **************
To enable just-in-time (JIT) debugging, the .config file for this
application or computer (machine.config) must have the
jitDebugging value set in the system.windows.forms section.
The application must also be compiled with debugging
enabled.
For example:
When JIT debugging is enabled, any unhandled exception
will be sent to the JIT debugger registered on the computer
rather than be handled by this dialog box.
So to also give some more information on this, I built this version of ledybot from the latest source using visual studio express (no github extension). Dunno if this is the issue I just wanna give as much info as possible. Also I tested this version on both Moon and Ultra Moon, it connects fine on both, injects files fine, it just can't start doing its GTS trades.
Also the latest public release 2.5.1 works fine on Moon so it's not an Input Redirection issue I think.
This was all the info I could provide, feel free to ask me any more questions, thanks very much in advance for your time to look into this and really hope that someone could help me soon. I'm trying to fix this all day so I could giveaway some stuff. Again thanks a lot and hope someone could help me!
After this new update for USUM I'm having a problem that my game always freeze when I connect it with the bot I tested both US and UM and it is only happening with ultra moon
here is a picture of the setup i have currently: https://imgur.com/a/LB9Xw
it will trade to mons with any name instead of just the one i want
I know this would be a lot of work to implement, but it would be helpful if this supported local trades too. I would help code it if I knew where to start.
It connects but everytime it finds someone that deposits what is asked for and asks for the right pokemon it just goes back and keeps searching. Is the bot working or how do i fix it?
Sorry if this is common knowledge, but this incredible helped me when I am away from my 3DS and I am running a giveaway with Ledybot. Now, lets say you have a giveaway on-going, and you have to step out of the house for a bit. Ledybot now crashes when you're out, leaving ur participants waiting for a long time. This is bad, and since you are not near your 3ds, you cannot restart the bot. Well, I have figured out a way around this. I think it'll help others who have to go out a lot and can't monitor their 3ds for when it disconnects from the internet and such.
REQUIREMENT:
Device that can have chrome remote desktop app (ex. your smartphone)
Host device (ur computer) that can run Chrome remote desktop app
Internet connection on 2nd device (not host)
PKMN-NTR
Recommened that your 2nd device have mobile data. You'll be able to do it anywhere then. (don't worry, chrome remote desktop doesn't take that much data as long as you're not on it for hours)
First, you want to set up your host device and the 2nd device with Chrome remote desktop. Chrome remote desktop allows you to remote control your devices. (similar to input redirection!) useful just for this purpose. There are tutorials on how to set it up, so go do that and then come back here.
Once your host device and 2nd device are all set up, all you need to do is frequently check for an error message. The error message means Ledybot stopped and is not trading anymore (You check this by connecting your 2nd device to your host device with chrome remote desktop)
When that error comes up, on your 2nd device, connect to your host device through chrome remote desktop. You are not controlling the device that hosts ledybot. disconnect from Ledybot and then reconnect. Then start. Sometimes, the bot just messes up with inputs or something and it will continue as normal. But, sometimes, the 3DS is disconnected from the internet, and you will have to reconnect it. You will know since after a while you have the bot running, an error will pop up saying "An error has occurred". This 100% means your 3DS is disconnected from internet. Ledybot will try to go in recovery.
Usually, when your 3DS disconnects, a screen with an error code pops up. Pressing any button will remove the screen and bring you back to main menu. Since Ledybot presses "B" as recovery proccess, that screen will go away and bring you to the main menu. I found out that apart of Ledybot's recovery proccess, it'll click "Trade" and "GTS" for you. You'll now be at the screen where it says "Do you want to connect to the internet?" and blah blah blah. This is when Ledybot brings up the error since it doesn't know what to do (I think? I just know it gives an error when it's at this part) For this part, you only need to Press "A", a few simple button presses. PKMN-NTR will be able to do this easily with remote control.
Dismiss the error and Disconnect from Ledybot, and open up PKMN-NtR and connect your 3DS. Go to Tools, then remote control. Look for the "A" button and repeatedly press that. I usually do it for one minute just to be safe. Pressing "A" will get you pass the "connecting to the Internet" section and bring you to the GTS. Disconnect from PKMN-NTR and connect your 3DS to Ledybot. Press Connect, start, and you should be back in business! It may go in recover if you pressed "A" lot, but that shouldn't be a major concern.
A few problems that may arise:
Since you are not looking at your 3DS screen, you have no idea what is happening. You may arrive at the wrong screen, and the pattern will be broken. It is just pure luck to be honest. I have had very high success rate with it though, so the chance of arriving at the wrong screen is low.
You may get the "Power off your 3DS" screen, which happenes when your internet cuts off just as the bot is going to send a Pokemon. Rare, but it can happen. At this point, you are screwed as you have to power off the 3DS.
The program cannot connect to your 3DS. Since you cannot use Ledybot or PKMN-NTR, you cannot use remote control to get past the screens. You are screwed here too.
Yes, this tutorial looks huge, but once you do it and know what you're going for, it only takes about 5-10 minutes. (TBH it is just padded with why it works) Good to do when you're on a lunch break at work or something.
So basically, the proccess is this:
again... I am sorry if there is a better way or it is common knowledge, but I am happy to share this since I go out a lot and usually have ledybot offline for hours when a giveaway is happening. I hope anyone in similar situations will find this helpful. :)
can youn still use ledybot in version 1.2 of Pokemon?
because i cant connect anymore
Works again
Hi, I don't know if the bot doesnt work because my game it's in spanish and we had a different keyboard, but when Ledybot reach the moment to introduce the Pokémon Name, Ledybot stop working.
Could you solve this?
I see some people able to have live updates on who ledybot trades with. How do I go about doing this?
For a while now, whenever I drop a folder full of .pk7 into the giveaway details, ledybot would "skip" files, and not put them in the giveaway details. I would just drag the remaining pk7 files into the giveaway details window my self. Now today, I dropped in a folder this time, and only two came registered in the giveaway details. I had a lot of Pokemon to give out and didn't feel like dragging each file into the window. I saw that the 2 Pokemon that ledybot registered was a Muk and alola muk. And then it came to me, what if the alola pk.7 file is interfering with this? So I delete muk and alola muk from the folder and try dragging the folder into the giveaway details window again, and all the Pokemon got registered.
If you need clarification, please ask. I'm terrible when it comes to explaining things like this.
EDIT: Also suggestion, related to #20: Have an option for the bot to ignore anything in parenthesis () for the nickname requirement. For example, if you have dave (1).pk7
Ledybot would ignore the (1)
and just search for a Pokemon nicknamed dave
in GTS. So if you have tons of Pokemon to give out, and you want the recipients to nickname their deposited mon to a specific nickname, it'll be easier to set up the files and such. Right now, you have to create each folder for a Pokemon, and there's no way to mass change file names across folders (at least that I know of...). So you'd have to go into each folder, nickname it to dave
, exit and do it all over again. For small giveaways, this is like a piece of cake, but when you got over 30+ types of Pokemon to give out, it can get tedious and repetitive, and there are more prone to mistakes in file names and such. Implementing this will allow you just to keep everything in one folder and be easier. I hope that makes sense
P.S Thank you for all that you do imaboy321 and @olliz0r ! This makes doing giveaways so much easier!! I will try to donate when I have the funds!
P.P.S Pls don't be pressured to implement this RIGHT away; it's just a small suggestion, get to it when you have free time!
PPPS: Ty for reading all this.
If possible
So for the bot to check Reddit threads, trade to people with their flair etc., you have to put in the "code" of the giveaway thread. I just put in the 6 characters between comment and the title.
example
https://www.reddit.com/r/subreddit/comments/**123abc**/this_is_a_title/
anything else gives me errors. Anyways, I've noticed that the bot still trades to random people on the GTS. again, sorry for the numerous posts. if u want me to shut up just tell me
Cant get this to work.
It goes on the GTS and try to give the Pokemon to the selected player. It enter in the PC box to select the giveaway Pokemon but all Pokemon are in a gray color. It try to pick the first Pokemon in the box, indifferently what Pokemon it is. After trying to give the Pokemon and getting the error message because its a different Pokemon it goes back to the seek/deposit and does the same thing.
What is weird is that sometimes it adds entries to the table, showing a player info (FC and trade time included) of someone who you didn't trade and actually is asking for the Pokemon you are giving away.
I'm not sure if its supposed to do everything on the back without the player being able to see the trade or if I'm doing something wrong. I'm using NTR CFW 3.6 with InputRedirection.
So if there's only one pokemon on the GTS list screen it comes up as invalid and panics then goes to recovery mode
up until a few days ago i was able to run 2 instances if LedyBot using 2 different 3DS's on the same laptop.. but now i keep losing connection and getting error code 003-4099, even after removing one of the bots
Adding FCs to the ban list in ledy bot is very frustrating. can we just have it be like Ledysync where you just paste the friend code and be done with it? I know, just use Ledysync but I also want to use the Reddit function which gets disabled when ledysync is on..
Hi, 4 months before, the ledybot works in my O3DS but now when I try to use ledybot, a "Failed Connection" message appears!!
Will that come soon? I just finished a bunch of files for a 6th gen giveaway, but when i tried to start ledybot, it crashed.
Nevermind, found out the problem XD
Currently doesn't work for ultra. It doesn't type the pokemon name.
I used this for about 5 or so hours last night. Ran into some issues (where it would end up searching for an abra even if i dont say to, then it would end up highlighting quit and break) not sure if its due to my crappy college wifi and some interference, but it happened a lot
Can you guys update the nfc and push a new ledybot out please
Hello Guys I am currently using Ledybot for Giveaways but on the newest Firmware it cannot longer connect. I also have the latest Luma version installed on my 3DS. If someone uses Ledybot on 11.8 and got it to work on can this person release a new Version of Ledybot for the Latest Firmware?
I don't know if it's some kinda of problem with my connection but sometimes when my bot is up connect with ledysync I get this message of error
System.Net.Sockets.SocketException (0x80004005): An existing connection was forcibly closed by the remote host
em System.Net.Sockets.Socket.Send(Byte[] buffer, Int32 offset, Int32 size, SocketFlags socketFlags)
em System.Net.Sockets.NetworkStream.Write(Byte[] buffer, Int32 offset, Int32 size)
I'm having a strange issue with the bot while I'm connect if ledysync, if the bot don't stop to trade it doesn't crash but if it stops for like 30 minutes because it couldn't find a pokemon to trade when it finds again a pokemon to trade it crashes
I don't think it's a problem if my configurations because my port is open and my firewall isn't blocking it
I haven't been able to start the bot since the 1.2 update, is any fix coming out?
Before I go writing a bunch of "endswith" conditions, do you guys have a way to check that a pokemon is GTS legal? i.e. It doesn't have any event ribbons, mega stones, z crystals, or cherish ball.
When I click connect on Ledybot, my game crashes and gives me an error, in Lebybot it still gives me the connection successful message. Using NTR Selector 3.6 on Ultra Moon, any workaround?
It seems to skim past whenever people request "Any" gender of pokemon too.
Hi!! Well the title say all!!
Thnx anyway!!
I am running input redirection and NTRboot3.6 and have the right IP, but Ledybot still freezes for a few seconds then says connection failed.. i am using it on a pocket wifi if that matters
i randomly get 1 of 2 issues a few times a day. these cause the program to stop working and sometimes i have to redownload Ledybot to fix it
1-net framework "unhandled exception has occured" error
2-3DS freezes and the buttons/touch screen stop working, causing the message "an error occured" in LedyBot
when with there be a new push aka release with the new nfc patch
tryed testing this bot for my gts streams but it crashes i hit connect and it takes me to an error screen i have NTR cfw and input i start both of those and still crashes please help
The bot in its current state just searches through the whole GTS for the pokemon and skips over matching trades. Maybe make it known what Dex means and a gender for all?
After initially searching from the last page, is the desired result to then just search the first page only? Just trying to confirm what i see in my logs.
If u have two .pk7 Files in the Optional Path with different Genders for ex. File1(Male) File2(Female) u cant select the second Gender.
Got a look here:
if ((gender == 0 || gender == details.Item3) && (level == 0 || level == details.Item4)) { }
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.