GithubHelp home page GithubHelp logo

cp-algorithms / cp-algorithms Goto Github PK

View Code? Open in Web Editor NEW
6.5K 92.0 1.4K 3.85 MB

Algorithm and data structure articles for https://cp-algorithms.com (based on http://e-maxx.ru)

Home Page: https://cp-algorithms.com/

License: Creative Commons Attribution Share Alike 4.0 International

HTML 9.70% Shell 1.93% Python 3.77% C++ 73.22% CSS 1.21% JavaScript 2.44% C 7.73%
algorithms translation algorithm-competitions algorithms-and-data-structures data-structures competitive-programming competitive-programming-contests learning-materials programming-contests programming-competitions

cp-algorithms's Introduction

Algorithms for Competitive Programming

Contributors Pull Requests Closed Pull Requests Build Translation Progress

The goal of this project is to translate the wonderful resource https://e-maxx.ru/algo which provides descriptions of many algorithms and data structures especially popular in field of competitive programming. Moreover we want to improve the collected knowledge by extending the articles and adding new articles to the collection.

Compiled pages are published at https://cp-algorithms.com/.

Changelog

  • June 26, 2023: Added automatic RSS feeds for new articles and updates in articles.
  • December 20, 2022: The repository name and the owning organizations were renamed! Now the repo is located at https://github.com/cp-algorithms/cp-algorithms. It is recommended to update the upstream link in your local repositories, if you have any.
  • October 31, 2022: It is now possible to select and copy $\LaTeX$ source code of formulas within the articles.
  • June 8, 2022: Tags are enabled. Each article is now marked whether it is translated or original, overall tag info is present in the tag index. For translated articles, clicking on From: X tag would lead to the original article.
  • June 7, 2022: Date of last commit and author list with contribution percentage is tracked for each page.
  • June 5, 2022: Enabled content tabs and sidebar navigation. The navigation is moved to a separate page and its structure should be adjusted in navigation.md whenever a new article is created or an old one is moved.
  • January 16, 2022: Switched to the MkDocs site generator with the Material for MkDocs theme, which give the website a more modern look, brings a couple of new features (dark mode, better search, ...), makes the website more stable (in terms of rendering math formulas), and makes it easier to contribute.

New articles

Full list of updates: Commit History

Full list of articles: Navigation

Contributing

cp-algorithms's People

Contributors

adamant-pwn avatar alemini18 avatar algmyr avatar bimalkant-lauhny avatar ellen-interpret avatar fer22f avatar gabrielsimoes avatar gampu avatar gaurangtandon avatar jakobkogler avatar joaquingx avatar jxu avatar l1nkus avatar madhur4127 avatar mhayter avatar morass avatar mrpandey avatar ngthanhtrung23 avatar omkarbajaj073 avatar prprprpony avatar rodiongork avatar roll-no-1 avatar sgtlaugh avatar singamandeep avatar sourav15102 avatar syury avatar tcnickolas avatar toufiq7r avatar vatsalsharma376 avatar wikku 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  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  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  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

cp-algorithms's Issues

Author's names under articles, which are not from original E-maxx

Probably it will be good if the articles which contain material taken not from original e-maxx, but contributed by enthusiasts, should also have mention about the contributor.

For people who contributed significant amount of articles it would be good even to add small "personal pages" I believe - as a memory and recognition :)

And also page about E-maxx himself could be added, though we have no much info (and he seems to be shy enough person to provide it).

What do you think?

Web-App to automatically publish pages from this repo

Currently after page sources are updated (in MarkDown format) we need to run utility to convert them to HTML and then push generated files to gh-pages - all this manually.

It would be great to have web-tool which does it automatically, say, once per hour or something like this.

Code testing proposal

I want to have tests, that check if the implementations are actually functional or not.
Similar proposal: #117.

How do the tests have to look?

This is really difficult, because obviously I don't want to show the complete test (e.g. generating graph, main functions, ...) on the page.
But also I don't want to have the tests in a different file.

My proposal / quick and dirty solution:

One possible solution would look like this: jakobkogler@6ac6978
I used html comments and a few little commands to indicate where the test case starts

<!--- begin test my_test_name
```cpp
#include <bits/stdc++.h>
using namespace std;
```
-->

and where it ends (because there might be multiple tests in one file).

<!---
```cpp
int main() {
     TEST_EQ(1, 2);
}
```
end test -->

We can then easily parse all code lines from the between begin test and end test, put them into $my_test_name.cpp files, compile them and execute them. I already implemented a quick program that does this: jakobkogler@6ac6978
This program can be executed on each clone of the project.

Travis CI / Github integration

But we can also connect it with Travis CI and integrated with Github (e.g. every Push request will automatically trigger compiling and running all tests, and we can see the results directly on the Github page).

This will look something like this: jakobkogler#1 (Notice the checkmarks / x-marks on all commits, and the all checks passed)

And here an example where the tests failed: jakobkogler#2
Details show:

Test failed!
 TEST_EQ((L + R) * (R - L + 1) / 2, sum_query(L, R)): 0 != 1
Test sparse-table_sum_queries.cpp failed!
0 / 1 tests were successful.

What's you opinion?

So this is my proposal: What do you think? Like it, hate it? Ideas?
I'm not really happy with the syntax right now, maybe somebody can come up with something else. Also my implementation is currently really bad. I just want to know your opinions?

Treap article appears empty

This article doesn't load correctly: Treap.
It is just the blank template. But the url is correct, and the file definitely has some context.

Maybe the conversion to html produced an error?

Congrats on doubling audience and pageviews :)

I wanted to bring attention to some of the results, achieved, since @jakobkogler joined the project. There is a good page with Translation progress maintained by him - and let's now see the other side, the effect of these efforts.

By November 2016 (couple months after creating site on appengine for the first Hacktoberfest, by the idea of @tcNickolas) the daily statistics of the e-maxx-eng were like these:

  • 150 pageviews
  • 60 unique users

By 30 September 2017, year later, not too much have changed:

  • 200 pageviews
  • 100 unique users

Then Maria invited people once more to participate in another Hacktoberfest and particularly Jakob came to help. Since then there is a steady increment and currently (by 25 May 2018) they are:

  • 700 pageviews
  • 200 unique users

It seems we have here an impressive boost - due to impressive work! My congratulations and many thanks :)

Search Box

It seems the site have grown to considerable size and info on some topics could be found in more than one article. Surely we have some amount of cross-links, but probably it is not always enough.

I thought it may be helpful to have search-box in the head of the pages. I've added one and now it would be great to check whether it works as we want.

One of the drawbacks I see right now is that formulas are not expanded in search results. The other may be that in some kinds of screens or browsers the layout is broken. And surely it may not appear to work at all in some circumstances... Feel free to notify about any unwanted behavior also, please.

If it won't do us good I'd better remove it.

Latex issue with underscores

The following example doesn't display correctly.

$$\underbrace{1}_{2} \underbrace{1}_{2}$$

A fix is to escape the underscores.

$$\underbrace{1}\_{2} \underbrace{1}\_{2}$$

Not sure why this happens.
Maybe the markdown converter recognizes _something_ as the italic font style, and this conflicts with the formula.

Make it easier to comment / report problems

@madhur4127 wrote on Codeforces:

I have a suggestion for problem I have been facing. There are few posts where extra clarification or a different strategy/implementation/algorithm/technique is needed.

If it is possible then please add a feature of comments so that community can discuss or suggest alternative approaches like in codeforces.

I think it will be helpful!

My (@jakobkogler) response:

Right now this is possible by creating an issue on Github.

To be honest, I'm not sure if I want a comment section on e-maxx-eng. First of somebody will have to maintain the comments to avoid spam, hate speech, ... And secondly I feel like that nobody of the team will read (all) the comments in detail, and lots of errors will just be ignored. E.g. like it is on quite a few articles on geeksforgeeks. On the other hand if there is an issue on Github, then the problem / suggestion will definitely be read and handled.

But obviously it is quite hard to find the issue page, if you are reading an article and don't know that the project is hosted on Github. Maybe it is enough to add a link to the issue page at the bottom of the page of each article, and also some clearer instructions how to edit the article itself and make a pull request.

Keeping track of translated articles

As the title says, I want to keep track of how many/which articles are translated and in which state the articles are (e.g. some are only partially translated or in bad shape).

I think the Github wiki should be a nice place for that. So @RodionGork, can you create the wiki?

Try moving CSS and JS to this repo

Currently CSS (stylesheets) and JS (javascript) files are shipped along with engine itself (e-maxx-eng-auto project). This creates a problem - they could be updated only with updating the application. This is definitely bad.

They should be in the same repo as sources, served either via "raw" urls like images - or some additional code in the app may do this...

Adjust the website to reflect translated vs original content

Now that we have some original content which does not exist at e-maxx.ru, it would be nice to somehow reflect this at the website.

  • We need to come up with a better wording for our main page - "The goal of this project is to translate at least some pages..." is too modest :-)
  • Mark each page to distinguish translations from original content. Maybe we can add a sub-title "translated from (link to page at e-maxx.ru)" below the main title to the pages which are translations, and original content will be marked by not having this line? This will also make it easier to navigate to Russian version of the page if the reader wants to. But it would be really nice to do this automatically rather than manually on each page...

Table of contents

On e-maxx.ru most pages contains table of contents at the beginning. Perhaps it also should be added here.

Bad mobile experience

Since things get more serious (#256).

The experience of the site is pretty bad right now at the mobile version of Chrome. The formulas are somewhat small compared with the text, and they even are overlayed at some places.
screenshot_chrome_20180527-111840

Tested under Android 8.1.0, Chrome Version 66.0.3359.158

Firefox does better.
But I'm also not really happy, since the text is very small and it is hard to read.
screenshot_firefox_20180527-113158

Adopt a code standard for implementation codes (umbrella issue)

Basic level:

  • enclose code in ``` tags instead of pre, code etc.
  • code style: spacing, indentation etc.

Intermediate level:

  • unify the way code reads parameters and reports output. A lot of code has comments instead of reading input - we could, for example, wrap such code in a function which accepts a certain list of parameters, so that we don't need a specific input-handling code, and still the code is complete and can be used as a library method.
  • use the same language for all generic code (i.e. code which doesn't highlight some specific feature of a specific language). Some articles have the same code in C++ and Python, and the difference is purely syntax.

Advanced level:

  • make sure all code compiles and is covered by unit tests :-) We could use Jupyter to embed executable code in our articles.

GitHub Pages is now https

Github pages is now forced https. However the site still has as code: <base href="http://e-maxx-eng.github.io/"/> which loads resources as unsecured http. We need to change the base href to https, fix any internal links to https, and update our CDN for MathJax.

Error in get() function in convex_hull_trick.

The lower_bound compare logic should be return cross(a, b) > 0;.

With the existing logic return cross(a, b) < 0;, lower_bound finds the first normal vector for which cross(normal vector, query vector) is NOT less than 0 i.e. query vector is counter-clockwise from the normal vector found, which is incorrect.

Non-ASCII characters issue

Sometimes people use characters not belonging to first half of ASCII table. For example this article uses "beautiful" quotation marks:

http://e-maxx-eng.appspot.com/algebra/sieve-of-eratosthenes.html

Currently they are rendered incorrectly. I think that really there are two issue:

  • such characters should be avoided anyway, if possible - and for this some warning could be added to test page, which checks their presence automatically...
  • default charset for pages should be made "utf-8" probably...

Going to take care of this bit later...

Page rendering on the website and in the test form is different

For example, https://e-maxx-eng.appspot.com/string/prefix-function.html renders with all characters shown properly, and the same content viewed via https://e-maxx-eng.appspot.com/test.php has � characters instead of dashes in the title. This might indicate that we're using different font in main website and in test viewer, or some other discrepancy. Ideally we should have exactly the same rendering in both modes - that's the whole point of test viewer.

I've checked this in Firefox and Chrome browsers on Ubuntu.

@RodionGork It would be great if you could take a look at this when you have time.

Typo in sample code of Disjoint Set Union

In the implementation of union by rank based on the depth of the trees:

void make_set(int v) {
    parent(v) = v;
    rank[v] = 0;
}

void union_sets(int a, int b) {
    a = find_set(a);
    b = find_set(b);
    if (a != b) {
        if (rank[a] < rank[b])
            swap(a, b);
        parent[b] = a;
        if (rank[a] == rank[b])
            rank[a]++;
    }
}

Second line should be

parent[v] = v;

Instead of

parent(v) = v;

All pages except test.php are blank

I've noticed it today (observed from three different computers with Linux/Windows and Firefox/Chrome so doesn't seem to be limited to one system). On January 21st when I was closing #201 the page rendered fine, so looks like something happened in the past week.

@RodionGork @jakobkogler Do you see this behavior as well? Any ideas what could be causing it?

Add redirects from pages on e-maxx-eng.github.io to e-maxx-eng.appspot.com

After we migrated from GitHub.io to appspot, we have a redirect from old main page to new main page, but we don't have redirects from individual old pages. I found a link to http://e-maxx-eng.github.io/string/z-function.html which gives 404, even though it can be redirected to
http://e-maxx-eng.appspot.com/string/z-function.html

If possible, it would be nice to add such redirects for the (rare) cases which referenced specific pages on our website before migration and now have broken links instead.

e-maxx-eng-img

I always try to generate nice images for the translated articles. E.g. I just generated some for MST with Kruskal.

I make these images with Latex/Tikz + one small script to resize/compress them. For this purpose I made a repo jakobkogler/e-maxx-eng-img, just so that I have the ability to modify them later without having to regenerate them from scratch.

Currently this is only a personal repo of mine. But we could integrate it in the e-maxx-eng project. I mean having it as fourth repo beside e-maxx-eng, e-maxx-eng-img and e-maxx-eng.github.io.
What do you think?

TODO topic list

Here I want to keep updated list of topics which are not presented on e-maxx and which probably should be added. To begin with:

To begin with:

  • Schreier–Sims algorithm
  • Berlekamp-Massey algorithm
  • Ji Driver tree (?)
  • Enumerating points in non-lattice polygons (generalization of Pick's theorem)
  • DP on convex subsets
  • DP optimizations (list?)
  • Generating functions and calculating functions of polynomials

Use \binom instead of C to denote Binomial coefficients

Alternative notations include $C(n, k), nC_k, ^nC_k, C^k_n, C^n_k, C{n,k}$ in all of which the C stands for combinations or choices. -from Binomial coefficient - Wikipedia

As you can see, the C notation varied from country to country.
So using it to denote Binomial coefficients may be confusing to readers from different backgrounds.
In contrast, there is only one representation of the \binom notation, which is friendlier.

Empty File

The fft.md file doesn't contain any information.

There are two options :

  • Remove the file and wait for other translator to translate it
  • Keep it there

Do we want a dedicated domain name?

This question was asked couple of times earlier, but I was not sure, whether it is worth considering while the site enjoys only small audience. Now it receives about 200 unique users daily so circumstances have slightly changed. So let here be a dedicated discussion.

Technically, we can order a custom domain, like e-maxx-eng.org or e-maxx-eng.net, or e-maxx-algorithms.org, or even cs-algorithms.net (the name should be discussed thoroughly as it is really tricky matter) to work along with existing e-maxx-eng.appspot.com.

What shall it give us? There is suspicion (though unproven as anything related to SEO) that site is better ranked by google search and so there may be more hits from search. And shorter (probably) name. Well, not sure, if anything more :)

Why I slightly hesitate - the domain name is somewhat more dependent on a single person (mainly not to forget to paid annual fee). And the main idea of e-maxx-eng at appengine was to reduce such dependencies.

Also, of course, existing links from other resources to e-maxx-eng.appspot.com won't change themselves. The old name should work of course anyway... So improvements, if any, won't come at once.

So feel free to express your feelings towards this idea. I think I can take care of necessary steps and minor changes required, if we want to try it as a kind of experiment. Or surely we can postpone this for some more time.

A couple of typos in Suffix Array

Hello and thank you for this great effort!

I found a couple of typos:
"Lets see" should be "Let's see"
"Each string has something common with other" should be "Each string has something in common with another" or "Each string has something in common with the other strings"

I also noticed that there are many articles missing in the Suffix Array explanation. Like:
"This is most naive approach" should be "This is the most naive approach"
"What is suffix?" should be "What is a suffix?" or
"ith suffix of S is substring" should be "The ith suffix of S is substring"

Best,
Juan

Use modern C++?

All of the code snippets from e-maxx use a quite old C++ syntax. Especially since the C++11/14 updates a lot of things can be written more nicely and shorter.

E.g.

  • auto pos = lower_bound(v.begin(), v.end(), x); instead of vector<int>::iterator pos = ....
  • for (int u : adj[v]) instead of for (int i = 0; i < adj[v].size(), ...
  • v.push_back({a, b}) instead of v.push_back(make_pair(a, b))
  • ...

What is your opinion? Should we update the code snippets to a more modern style of C++? Or keep the old style?

Set license for the project

e-maxx.ru uses Public Domain license. We should figure out which license e-maxx-eng is using and add it to the project.

Linked books

Another concern is about the books hosted in e-maxx.ru. Will we host them at the project, or use the ones already hosted at e-maxx.ru? Will we link them at the pages, or not?

Adopt a standard format for listing practice problems

Currently practice problems are listed in arbitrary way: some fields shown or not are online judge name (in various spellings), problem id in the judge, problem name and difficulty level. We should agree on a single format and use it throughout all articles consistently.

Also, some problems listed have only Russian statement, which I don't think is a good example for an English tutorial, especially if similar problems can be found in English sources

Provide a way to test pages

Maybe I lost it somehow, but since the latest changes on the way the page is rendered, there is no way to test local branch changes before submiting them to a pull-request. There may actually be a way, but it is not stated in contrib.md

SEO related changes

I'm opening this issue to discuss and implement changes pointed out by @RodionGork at #111.

  • Update inline LaTeX code which isn't a formula on existing articles, replacing with Markdown code syntax.
    eg: $a$ ->a
  • Update contrib.mdwith such information.

I may have the time to work on this later, but we can also discuss other measures here.

Backslash + nonletter bug

The Markdown to HTML converter throws away any backslash, if it is not followed by letter.
This is quite annoying, since there are many cases in Latex where this would be useful. E.g. new line \\ and curly brackets \{\}.

The current workaround is to escape the backslash.

Example of not working code:

$$\begin{array}{cc}
1 & 2\\
3 & 4
\end{array}$$
$$\{1, 2, 3\}$$

Workaround:

$$\begin{array}{cc}
1 & 2\\\\
3 & 4
\end{array}$$
$$\\{1, 2, 3\\}$$

Integrating disqus

Hi
I think it'll be a good idea to integrate a nice commenting ability on all article pages. Disqus should work pretty well. The main website also has similar functions. Adding disqus might help fixing translation errors etc. easily.

If everyone thinks this a good idea I can work on integrating it into all article pages :)

translation of the word "Длинная арифметика"

The word is currently translated as "long arithmetics", but I think "bignum arithmetic" is a better translation.
The English Wikipedia page about it mentioned "bignum arithmetic" but no "long arithmetics".
And if you search both translations on Google, the results of "bignum arithmetic" are apparently more related to "Arbitrary-precision arithmetic" than that of "long arithmetics".

I grep 0252afc to get a list of places where "long arithmetics" is used.

$ grep -ri "long arithmetic"
src/algebra/big-integer.md:<!--?title Long Arithmetics -->
src/algebra/big-integer.md:# Long Arithmetics
src/algebra/big-integer.md:Long arithmetics is a set of data structures and algorithms which allows to process much greater numbers than can be fit in standard data types. Here are several types of long arithmetics.
src/algebra/big-integer.md:## Classical Integer Long Arithmetics
src/algebra/big-integer.md:Here we describe long arithmetics for only non-negative integers. To extend the algorithms to handle negative integers one has to introduce and maintain additional "negative number" flag or use two's complement integer representation.
src/algebra/big-integer.md:The tradeoff is that converting the integer back to normal form is rather laborious and requires implementing classical long arithmetics with multiplication. Besides, this method doesn't support division.
src/algebra/big-integer.md:Fractions occur in programming competitions less frequently than integers, and long arithmetics is much trickier to implement for fractions, so programming competitions feature only a small subset of fractional long arithmetics.
src/algebra/big-integer.md:### Long Arithmetics in Irreducible Fractions
src/algebra/big-integer.md:A number is represented as an irreducible fraction $\frac{a}{b}$, where $a$ and $b$ are integers. All operations on fractions can be represented as operations on integer numerators and denominators of these fractions. Usually this requires using classical long arithmetics for storing numerator and denominator, but sometimes a built-in 64-bit integer data type suffices.
src/index.md:- [Long Arithmetics](./algebra/big-integer.html)
src/combinatorics/binomial-coefficients.md:The first, straightforward formula is very easy to code, but this method is likely to overflow even for relatively small values of $n$ and $k$ (even if the answer completely fit into some datatype, the calculation of the intermediate factorials can lead to overflow). Therefore, this method often can only be used with [long arithmetic](./algebra/big-integer.html):
src/combinatorics/binomial-coefficients.md:Finally, in some situations it is beneficial to pre-calculate all the factorials in order to produce any necessary binomial coefficient with only two divisions later. This can be advantageous when using [long arithmetic](./algebra/big-integer.html), when the memory does not allow precalculation of the whole Pascal's triangle, or when you need to do calculations for some prime modulo (if the modulo is not prime, there are difficulties when dividing the numerator by the denominator, which can be overcome by factoring modulo and storing all numbers in the form of vectors of powers of these primes; see the section [Long arithmetic in factored form](./algebra/big-integer.html)).

Latex notation error in 2 SAT Page

In the page for 2 SAT, there is a latex notation error. Instead of showing the logical not symbol, the page shows the string "lnoty".

A screenshot of the paragraph with the error is shown below:

capture

Improve problem recommendations

I'm opening this issue simply to point out I think we should improve the way we are handling problem recommendations. I believe after we the translation has progressed further, we could all rate the problems based on different criteria, and also eliminate duplicates (problems that have very similar ideas), thus providing better recommendations.

Making URLs consistent

I just noticed that some URLs on the website use _ to separate multiple words, while most others use -. Wouldn't it be a good idea to switch to one of these to avoid confusion in direct links?

  • The folder num_method
  • The folder on data_structures
  • The folder linear_algebra
  • The article on ternary_search
  • The article on bellman_ford
  • The article mst_kruskal_with_dsu
  • The article mst_kruskal

If everyone agrees to these changes, I'll make a pull request. Otherwise, maybe the mods should do these.

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.