GithubHelp home page GithubHelp logo

honorspy's Introduction

HonorSpy addon for WoW: Classic

Important notice

Since blizzard reworked the ranking system in classic ERA, your progress is unrelated to other players honor or rank. This makes honorspy purposeless and outdated, which results in the end of dev and maintenance for this addon. You should probably uninstall it as it will cause error and problems sooner or later.

Description

Addon helps players estimate their PvP next week rank and overall progress.

It uses the exact formulaes as game server does, the only difference is that it operates on the database collected by players themselves. The final result is pretty close to what you get in reality, as the database is collected by all addon users and is synced instantly across other players.

Known Problems

  • Reset Day Is Wrong: I'm playing on EU server, but HonorSpy resets on Tuesday instead of Wednesday: its because your client thinks you are in US. Check your WoW Classic Folder > WTF > Config file, it should have SET portal "EU", not "US".
  • I'm Not In the Table -or- My Table Is Empty, even though I Have > 15 Kills!!!: its because its reset day, and you have 0 honor during this whole day. Everyone have 0 honor! Check your Honor tab, line "This week honor". Come back tomorrow, when honor is updated for everyone and the table will start populating with content.

How it works

Addon does all the magic in background.

  • addon inspects every player you meet (you should mouseover the player or target him, in inspect range), stores his PvP data in your local database, send this info to other addon users
  • occasionally, when you die, you broadcast your whole database to other users. It works other way around, so you get the most recent database from every other player when they die, and merge it into your database.
  • data is synced across "RAID", "BATTLEGROUND" and "GUILD" channels, so when you play on BGs you transmit and receive data from your teammates. And all the time you exchange your data with your guildmates.

Right click on minimap icon to estimate your progress without opening the addon window.

Install

You have three options:

About

  1. Estimates your honor during the day
  2. Calculates diminishing returns after each kill, prints into chat real honor gained and number of kills for every victim
  3. It inspects every player in 'inspect range' which you target or mouseover
  4. It syncs your db with other party/raid/bg members and your guildmates on your death
  5. It can estimate your (or specific player) onward RP, Rank and Progress, taking into account your (player's) standing and pool size
  6. It can export your internal DB in CSV format to copy-paste it into Google Spreadsheets for future calculations. Spreadsheet done specially for HonorSpy, it will estimate RP for all players
  7. It supports automatic weekly pvp reset.
  8. Supports sorting by Rank, Honor and last week Standing.
  9. Groups players in table by brackets
  10. Esc → Interface Options → Addons → HonorSpy for addon settings.

It only stores players with >15HKs.

P.S. Do not be afraid of losing all your data, very likely that other players with HonorSpy will push you their database very soon. The more players use and collect data -> the more up-to-date data you will have. Magic of sync.

Commands

/hs show -> show/hide standings table

/hs search player_name -> report specific player's standing

Screenshot

HonorSpy Screenshot

honorspy's People

Contributors

abitlegacy avatar aleks1015 avatar arsonal avatar artur91425 avatar cannonpalms avatar hamdor avatar jyf avatar kakysha avatar qcat0214 avatar raethkcj avatar shikulja avatar slivo-fr avatar teelolws avatar vloz avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar

honorspy's Issues

/hs Standby doesent work to disable the addon!

Hi,

I have recently having a problem with the honorspy addon, I can't do /hs standby to disable it! Something will pop up and say: Interface\FrameXML\ChatFrame.Iua:2170:AceConsole-2.0:AceConsole-2.0: Option handler "Is Active" not found

I have tried to delete the honorspy lua thingy in savedvariables, but it doesent work!

Help me please!

Disconnects

When I want to open a standing list is calls disconnect after 1-2 min, may be too many players in this list (2 realms were merged + AV weekend). What to do to fix this?

Still lag spikes / mini freezes in battlegrounds

Hey,

I am using the most recent version (v3) but still experience horrible lag spikes / mini freezes when the addon is enabled - putting it on standby fixes it. I assume the data is just too big and gets synced every time you or a teammate with honorspy dies? Currently with over 8800 people in my weekly list (playing on Northdale) it really makes it almost impossible to play properly with the addon enabled. Would be awesome if you can somehow fix this issue, a lot of people confirmed the same issue with honorspy despite it being an absolute awesome addon.

PS: Currently when we die in a bg it gives an even bigger freeze (expected), would be nice tho if the sync could be delayed by a second or two so we can properly see what killed us / what happened.

awef

Can you add another Tab for the List, namely "Level". Level of the player ?

Current week honor estimation

I will soon be developing a small library for keeping track of diminishing returns and applying them to the honor values shown in the chat window in order to maintain an estimation of honor for the current week. Is this something you would be interested in including in HonorSpy? It would be another data point to distribute to other addon users upon death/etc. You don't have to add this estimation to the players actual reported honor unless the estimation proves to be accurate.

Exception While Idle in City

Exception caught by Swatter

Date: 2019-11-23 12:28:07
ID: 1
Error occured in: Global
Count: 2
Message: ..\AddOns\honorspy\GUI.lua line 256:
   bad argument #2 to 'format' (string expected, got nil)
Debug:
   [C]: format()
   honorspy\GUI.lua:256: colorize()
   honorspy\GUI.lua:121: UpdateTableView()
   honorspy\GUI.lua:242: update()
   ..\SharedXML\HybridScrollFrame.lua:191: HybridScrollFrame_SetOffset()
   ..\SharedXML\HybridScrollFrame.lua:30:
      ..\SharedXML\HybridScrollFrame.lua:29
Locals:
(*temporary) = "|cff%s%s"
(*temporary) = nil
(*temporary) = "Oopwox"
(*temporary) = "string expected, got nil"

AddOns:
  Swatter, v8.2.6377 (SwimmingSeadragon)
  AucAdvanced, v8.2.6430 (SwimmingSeadragon)
  AucFilterBasic, v8.2.6364 (SwimmingSeadragon)
  AucScanData, v8.2.6365 (SwimmingSeadragon)
  AucStatHistogram, v8.2.6366 (SwimmingSeadragon)
  AucStatiLevel, v8.2.6370 (SwimmingSeadragon)
  AucStatPurchased, v8.2.6367 (SwimmingSeadragon)
  AucStatSimple, v8.2.6399 (SwimmingSeadragon)
  AucStatStdDev, v8.2.6369 (SwimmingSeadragon)
  AucUtilFixAH, v8.2.6371 (SwimmingSeadragon)
  AutoDismount, v1.0.1
  BagBrother, v
  BeanCounter, v8.2.6434 (SwimmingSeadragon)
  BuffwatchClassic, v1.06
  CharacterStatsClassic, v2.4.2
  ClassicAuraDurations, v
  ClassicWorldMapEnhanced, v1.1-Release
  DBMCore, v1.13.18
  DBMDefaultSkin, v
  DBMStatusBarTimers, v
  Enchantrix, v8.2.6428 (SwimmingSeadragon)
  EnchantrixBarker, v8.2.6469 (SwimmingSeadragon)
  EZQuest, v1.0.0
  HealBot, v1.13.2.9
  HealBotTips, v1.13.2.9
  honorspy, v1.4.3
  Informant, v8.2.6374 (SwimmingSeadragon)
  Inventorian, v1.13.2.4
  OmniCC, v8.2.5
  Questie, v4.1.2 BETA 121 dff5a12
  Recount, vv1.13.2d
  SexyMap, vv3-classic
  SlideBar, v8.2.6375 (SwimmingSeadragon)
  Spy, v1.0.14
  Stubby, v8.2.6376 (SwimmingSeadragon)
  SurroundFix, vv3.5
  VendorPrice, v1.2.9
  BlizRuntimeLib_enUS v1.13.2.11302 <none>
  (ck=4ee)

Reproduction

I was AFK in IF and came back to the exception log.

Second time

I bumped all my addon versions and it happened again while opening the HonorSpy Standings.

Exception

Date: 2019-11-24 02:50:08
ID: 1
Error occured in: Global
Count: 1
Message: ..\AddOns\honorspy\GUI.lua line 258:
   bad argument #2 to 'format' (string expected, got nil)
Debug:
   [C]: format()
   honorspy\GUI.lua:258: colorize()
   honorspy\GUI.lua:121: UpdateTableView()
   honorspy\GUI.lua:244: update()
   ..\SharedXML\HybridScrollFrame.lua:191: HybridScrollFrame_SetOffset()
   ..\SharedXML\HybridScrollFrame.lua:30:
      ..\SharedXML\HybridScrollFrame.lua:29
Locals:
(*temporary) = "|cff%s%s"
(*temporary) = nil
(*temporary) = "Oopwox"
(*temporary) = "string expected, got nil"

AddOns:
  Swatter, v8.2.6377 (SwimmingSeadragon)
  AucAdvanced, v8.2.6430 (SwimmingSeadragon)
  AucFilterBasic, v8.2.6364 (SwimmingSeadragon)
  AucScanData, v8.2.6365 (SwimmingSeadragon)
  AucStatHistogram, v8.2.6366 (SwimmingSeadragon)
  AucStatiLevel, v8.2.6370 (SwimmingSeadragon)
  AucStatPurchased, v8.2.6367 (SwimmingSeadragon)
  AucStatSimple, v8.2.6399 (SwimmingSeadragon)
  AucStatStdDev, v8.2.6369 (SwimmingSeadragon)
  AucUtilFixAH, v8.2.6371 (SwimmingSeadragon)
  AutoDismount, v1.0.1
  BagBrother, v
  BeanCounter, v8.2.6434 (SwimmingSeadragon)
  BuffwatchClassic, v1.11
  CharacterStatsClassic, v2.6
  ClassicAuraDurations, v
  ClassicWorldMapEnhanced, v1.1-Release
  DBMCore, v1.13.21
  DBMDefaultSkin, v
  DBMStatusBarTimers, v
  Enchantrix, v8.2.6428 (SwimmingSeadragon)
  EnchantrixBarker, v8.2.6469 (SwimmingSeadragon)
  EZQuest, v1.0.0
  HealBot, v1.13.2.10
  HealBotTips, v1.13.2.10
  honorspy, v1.4.9
  Informant, v8.2.6374 (SwimmingSeadragon)
  Inventorian, v1.13.2.4
  OmniCC, v8.2.5
  Questie, v5.2.3
  Recount, vv1.13.2d
  SexyMap, vv3-classic
  SlideBar, v8.2.6375 (SwimmingSeadragon)
  Spy, v1.0.15
  Stubby, v8.2.6376 (SwimmingSeadragon)
  SurroundFix, vv3.5
  VendorPrice, v1.2.9
  BlizRuntimeLib_enUS v1.13.2.11302 <none>
  (ck=4dd)

Honor keeps going down after 0

Very minor issue. Probably not even worth mentioning, but just fyi, the honor gets to negative numbers after it surpasses 0.

honorspy-1.2.lua:197: attempt to compare number with nil honorspy\honorspy-1.2.lua:197

/hs show command fails with

5x honorspy\honorspy-1.2.lua:197: attempt to compare number with nil
honorspy\honorspy-1.2.lua:197: in function <honorspy\honorspy.lua:196>
[C]: in function `sort'
honorspy\honorspy-1.2.lua:196: in function `BuildStandingsTable'
honorspy\GUI.lua:31: in function `Show'
honorspy\GUI.lua:73: in function `Toggle'
honorspy\honorspy-1.2.lua:174: in function <honorspy\honorspy.lua:174>
(tail call): ?
...\AceConfig-3.0-3\AceConfigCmd-3.0\AceConfigCmd-3.0-14.lua:143: in function <...\AceConfig-3.0\AceConfigCmd-3.0\AceConfigCmd-3.0.lua:133>
...\AceConfig-3.0-3\AceConfigCmd-3.0\AceConfigCmd-3.0-14.lua:408: in function <...\AceConfig-3.0\AceConfigCmd-3.0\AceConfigCmd-3.0.lua:334>
(tail call): ?
...\AceConfig-3.0-3\AceConfigCmd-3.0\AceConfigCmd-3.0-14.lua:769: in function `HandleCommand'
...\AceConfig-3.0-3\AceConfigCmd-3.0\AceConfigCmd-3.0-14.lua:781: in function `?'
FrameXML\ChatFrame.lua:4609: in function `ChatEdit_ParseText'
FrameXML\ChatFrame.lua:4270: in function `ChatEdit_SendText'
FrameXML\ChatFrame.lua:4306: in function <FrameXML\ChatFrame.lua:4302>
[C]: in function `ChatEdit_OnEnterPressed'
[string "*:OnEnterPressed"]:1: in function <[string "*:OnEnterPressed"]:1>

Locals:
a = <table> {
 1 = "Moringotho"
 2 = "ROGUE"
 4 = 0
 7 = 0
 8 = 1573904924
}
b = <table> {
 1 = "Sharana"
 2 = "PRIEST"
 3 = 2971
 4 = 0
 5 = 0
 6 = 0
 7 = 0
 8 = 1573909661
}
(*temporary) = nil
(*temporary) = 2971
(*temporary) = "attempt to compare number with nil"
sort_column = 3

Doesn't show full standing

Looking at the standing with /hs show, there's currently 35 people being tracked. However, even when scrolling down, I can only see 27 people. Can provide a screenshot if necessary.

Mouseover inspects causing issues with manual inspect & RealmPlayers collection

If you mouseover with a manual inspection open and manage to mouseover someone else, then data of character gets changed (as intended).
You can probably also understand that at times this can be an unwanted situation if you want to actually check someone out with inspection.

Also, having honorspy makes data collecting for RealmPlayers armory alot more difficult. Even when pressing "Target Nearest Friend" keybind or a macro with "TargetNearestFriend()" included there have been times when a player has not been collected for VF_RealmPlayers.
Disabling Honorspy removes this issue for both inspections and RealmPlayers armory data collection.

I could just edit the addon myself for my own personal preferences, but my suggestion is to perhaps have a toggle/option to disable/enable mouseover data collection for HonorSpy, with it being enabled by default.

EDIT: After I manually removed any mouseover functions and despite realmplayers armory data got better, its still better when the addon is disabled. Perhaps there is something related to when the addon calls for clearing stuff when inspecting target. Especially gathering data for players on the move or when you yourself are on the move is problematic.

Addon not working

Hi there! I did like 900HKs so far and the addon isnt working. I'd love to know my total estimated honor but I have a wonderful "Player Zîm not found in the table" :( I tried to delete WTF honorspy lua and bak but no improvment... What should I do?
WoWScrnShot_111619_033910

problem after standby

Hi,
I put your addon on standby... now can't get it back despite loading it from scratch a few times.
When I try to get it back I am getting the following message:
Interface\FrameXML\ChatFrame.Iua:2170:AceConsole-2.0:AceConsole-2.0: Option handler "Is Active" not found

Can you help with getting back?

Thanks in advance

Slow to open

Currently on monday my week looks like this: http://pastebin.com/VxXx1d6H (Total around 4K with >15hk)
It takes about 40 seconds to open it and another to export it - it also freezes game for the duration completely. Personally I only care about top 50-100, so seems unnecessary data is collected.

1.13 version

Hi Kakysha, could you make HonorSpy compatible with 1.13 Classic?

Old Data

The correct Rank 1) data starts at 22, even 24 is a day old.
This is messing up the whole table.
They never update and it only gets worse, went from 3 "bugged" person to 22 in hours.

Capture2

Esitmation calculation has error when numeric field is nil

-- parse message
-- COMBATLOG_HONORGAIN = "%s dies, honorable kill Rank: %s (Estimated Honor Points: %d)";
-- COMBATLOG_HONORAWARD = "You have been awarded %d honor points.";
local function parseHonorMessage(msg)
	local honor_gain_pattern = string.gsub(COMBATLOG_HONORGAIN, "%(", "%%(")
	honor_gain_pattern = string.gsub(honor_gain_pattern, "%)", "%%)")
	honor_gain_pattern = string.gsub(honor_gain_pattern, "(%%s)", "(.+)")
	honor_gain_pattern = string.gsub(honor_gain_pattern, "(%%d)", "(%%d+)")
    local victim, rank, est_honor = msg:match(honor_gain_pattern)
    if (victim) then
    	est_honor = math.max(0, math.floor(est_honor * (1-0.25*(HonorSpy.db.char.today_kills[victim]-1 or 0)) + 0.5))
    end

    local honor_award_pattern = string.gsub(COMBATLOG_HONORAWARD, "(%%d)", "(%%d+)")
    local awarded_honor = msg:match(honor_award_pattern)
    return victim, est_honor, awarded_honor
end

The error occurs in this line:

est_honor = math.max(0, math.floor(est_honor * (1-0.25*(HonorSpy.db.char.today_kills[victim]-1 or 0)) + 0.5))

The error dump:

Date: 2019-11-22 15:47:46
ID: 1
Error occured in: Global
Count: 3
Message: ..\AddOns\honorspy\honorspy.lua line 147:
attempt to perform arithmetic on field '?' (a nil value)
Debug:
(tail call): ?
honorspy\honorspy.lua:147:
honorspy\honorspy.lua:140
honorspy\honorspy.lua:156:
honorspy\honorspy.lua:155
[C]: ?
...sic\Libs\CallbackHandler-1.0\CallbackHandler-1.0.lua:29:
...sic\Libs\CallbackHandler-1.0\CallbackHandler-1.0.lua:25
...sic\Libs\CallbackHandler-1.0\CallbackHandler-1.0.lua:64: Fire()
...\common\Wildpants\libs\AceEvent-3.0\AceEvent-3.0.lua:120:
...\common\Wildpants\libs\AceEvent-3.0\AceEvent-3.0.lua:119
Locals:
None
AddOns:
Swatter, v8.2.6377 (SwimmingSeadragon)
AdvancedInterfaceOptions, v1.3.3
AtlasLootClassic, vv1.3.4
AtlasLootClassicData, vv1.3.4
AtlasLootClassicDungeonsAndRaids, vv1.3.4
AucAdvanced, v8.2.6430 (SwimmingSeadragon)
AucFilterBasic, v8.2.6364 (SwimmingSeadragon)
AucStatHistogram, v8.2.6366 (SwimmingSeadragon)
AucStatiLevel, v8.2.6370 (SwimmingSeadragon)
AucStatPurchased, v8.2.6367 (SwimmingSeadragon)
AucStatSimple, v8.2.6399 (SwimmingSeadragon)
AucStatStdDev, v8.2.6369 (SwimmingSeadragon)
AucUtilFixAH, v8.2.6371 (SwimmingSeadragon)
BagBrother, v
Bagnon, v8.2.16
Bartender4, v4.8.8
BeanCounter, v8.2.6434 (SwimmingSeadragon)
BigWigs, vv6-classic
BlueShamans, v
ChocolateBar, vv3.3.4
ClassicCastbars, vv1.1.5
ClassicCastbarsOptions, v
ClassicCodex, v1.2.3
ClassicLFG, v1.1.3
Coordinates, v2.1.0
DejaClassicStats, v1302r039
Details, v
DetailsTinyThreat, v
EnchantrixBarker, v8.2.6469 (SwimmingSeadragon)
GatherMate2, v1.45.5
GearMenu, vv1.1.0
honorspy, v1.4.7
Informant, v8.2.6374 (SwimmingSeadragon)
ItemRack, v
KuiMedia, v
KuiNameplates, v
KuiNameplatesCore, v
LetMeCast, v1.3
OmniCC, v8.2.5
Prat30, v3.7.36
Prat30Libraries, v
Questie, v5.2.3
RealMobHealth, v2.13
ShadowedUnitFrames, vv4.2-Classic-Beta7
SlideBar, v8.2.6375 (SwimmingSeadragon)
Stubby, v8.2.6376 (SwimmingSeadragon)
TinyTooltip, v8.2.1
TradeSkillMaster, vv4.8.20
TradeSkillMasterAppHelper, vv4.0.5
WeakAuras, v2.15.5
BlizRuntimeLib_enUS v1.13.2.11302
(ck=5f7)

old version fucking it up for everyone

can you make it so that ppl that still use an older version cant send honor values to ppl that have the new version?

i am still getting duplicates because some ppl havent updated their version yet

Lost the Minimap Icon

I have missclicked the minimap icon and now its gone.

If I try to get it back by: /hs standby i get an error: Interface\FrameXML\ChatFrame.lue:2170:AceConsole-2.0: AceConsole-2.0: Option handler "IsActive" not found.

Anything to solve that problem. Reinstalling does nothing.

Ranking points

Not sure how RP are currently determined in HonorSpy, but there is a function that can be used for obtaining rank points. Below is a macro that I use for it, I'm sure you can rework the function to improve the RP part of HonorSpy.
/script P=(math.floor(GetPVPRankProgress(target)*10000))/100 W=UnitPVPRank("player") N=(W-6)5000+5000P/100 Q=(W-5)5000-N0.8 SendChatMessage("Rank progress: "..P.."% ".."Current RP: "..N.." RP to next rank: "..Q.."","emote")

Feature suggestion: synchronize button

Would be nice to have some way to manually force a synchronizing of data. Some request that can only be started by a raid/group leader (or assist). This way, you could set up a group to spread data around.

Error when scrolling

Somethimes when scrolling it messes up completely..

187x honorspy\GUI.lua:258: bad argument #2 to 'format' (string expected, got nil) [C]: in function format'
honorspy\GUI.lua:258: in function colorize' honorspy\GUI.lua:121: in function UpdateTableView'
honorspy\GUI.lua:244: in function update' SharedXML\HybridScrollFrame.lua:191: in function HybridScrollFrame_SetOffset'
SharedXML\HybridScrollFrame.lua:30: in function <SharedXML\HybridScrollFrame.lua:29>

Locals:
(*temporary) = "|cff%s%s|r"
(*temporary) = nil
(*temporary) = "Pooff"
(*temporary) = "string expected, got nil"
`

Potential Issue with Honor tab

On the beta the honor tab wouldn't update your honor until (10am?) the next day.

any plans to get around this? could you update your addon to track your honor from the combatlog or w/e and update every1 with your true # throughout the day?

minimap icon is not showing

I have deleted, re-downloaded, and reinstalled the addon.
I have deleted WTF\Account\YourName\SavedVariables\HonorSpy.lua and HonorSpy.lua.bak
I have even cloned the git repo to my addon folder directly.

In spite of all of this, the minimap button is still missing.

Lag spikes

When the list gets too big, it seems to cause some sync lag in battleground and is slow to open. Currently have 2000+ players on it on Anathema. Maybe add some option to limit what is saved? Eg. top-100 per week/last week.

Additional CSV information

I am currently working on a website to allow users to upload their HonorSpy data, and have the server aggregate data for all the classic wow servers into a viewable and searchable list (https://github.com/Madxmike/honorranks). I plan on it working much like the old honor ranking page on warcraft.com worked. However, I've ran into an issue trying to use HonorSpy's data set.

One of the problems I am facing is how to verify that the csv's being uploaded are actually for that server / faction. With the data set right now, I would have to rely on users accurately selecting their server/faction when they upload their data, or manually verifying it in some way. As such, would it be possible to have a column for the server and faction of the players to be added?

Duplicates popping up

Not sure why we are getting duplicates all of a sudden on some values.

image

It might be something with an old version causing syncing issues? Is there a way to change the syncing to only only sync if the incoming data is from another player with the latest version of the add-on?

Chat Channels

The addon changed the order of my chat channels and switched everything around. That should not happen I guess...maybe you can fix that?

  1. General

  2. Trade

  3. Local Defense

  4. Worldchat

  5. my private hunter channel
    and now its

  6. nothing

  7. nothing

  8. nothing

  9. HonorSpy

  10. Worldchat

  11. my private hunter channel
    ....

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.