-
-
Notifications
You must be signed in to change notification settings - Fork 1.8k
We're losing to usaco.guide (traffic + maintenance) #1452
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Comments
They go beyond making a wiki and are making a full-blown learning site à la brilliant.org. While the material is similar, I think the two sites serve somewhat different purposes. All of us are volunteers here while they have sponsors and a legal organization. We probably can't match their output, but I still prefer this site for ease of use. |
I still think we need to solicit donations or get some form of income (like a banner emphasizing the volunteer effort, sponsorship page). Buy me coffee, paypal, patreon, link the that cooperative thing that someone is currently donating to, etc. , so that we can put bounties on articles and or incentivize code reviews. In my view, the site is slowly dying. The most competent people who are most in control @jakobkogler and @adamant-pwn are, at the current time, complacent with stagnation. (Not to detract from the tremendous overall efforts that have been done throughout the site's history. For that, we are surely thankful.) It would be nice to have site metrics. I've plugged it into website traffic estimators and the numbers vary wildly. I'd be nice to know what people are responding to and how people find the site. This could further inform the priorities of future articles. |
We have a GitHub sponsor page and also opencollective org that currently has a total of ~$60 collected. We can discuss expanding those if there are some specific suggestions. If there is a sensible change for the website itself (like adding donation solicitation on the website itself), you can make a pull request, and we can further discuss it there. As usual, the main issue is that this all is also a work that someone has to do, and as you rightly pointed out, there is not much energy on my or Jakob's side to drive the effort. Last time I tried to get more maintainers on board, it also had a somewhat limited success... But if you want to lead the effort with this, I'll be happy to help. For site metrics, @jakobkogler mentioned that he has some with Google Analytics. I don't have access to it, so maybe Jakob can help with pointing out some exact place? Also, if we want to add more analytic tools that require e.g. verification on DNS side, both Jakob and I can do that on request, if specific tool is suggested. I'm not very well familiar with what standard tools are there, besides Google Search Console? |
I highly doubt that financial incentive is a huge factor in why people don't contribute as much though, esp. for people with right skills to do it properly. E.g. Wikipedia edits are done for free, and it's mostly striving, moreover some experiments to pay people to make articles on specific topics didn't seem to be very successful. Also for something more relevant to our cause, e.g. Chinese OI Wiki seems to be doing very well, and they also reuse our articles sometimes btw. I don't really know, but it's not very likely they have much incentive beyond what we have? I feel like having some active and striving "core" community with well skilled people might be more important in attracting more people to contribute, but this clearly needs more core maintainers besides me and Jakob, and finding those seems particularly hard, at least for me. |
I hope they credited cp-algorithms at least? On the topic of wikipedia, over time I like their CS articles less and less. Sometimes they go into way too much detail about a specific part, while not mentioning or emphasizing other details. Recently I've been studying CLRS and although they don't cover everything I find their treatment much more consistent and thorough. |
Yes, they did proper attribution, in accordance with CC BY-SA 4.0 requirements. |
Yes, we use Google Analytics. Looks like the usage is very stable (but definitely also not growing). @adamant-pwn @mhayter @jxu I haven't found an email address for you. If you send it to me, I can also invite you. jakob(dot)kogler(at)gmail(dot)com. |
Thanks for the analytics! My goal would be to further the progress of the site. I'm not entirely sure what would work, but I'm quite certain that the current trajectory is not great. It seems like usaco.guide probably gets twice the views despite many people not knowing what usaco is, I assume (but we're at least in the same ballpark). On their repo, they have Google spreadsheet for article bounties that have things checked off as completed. They offer between $30-50 and article. I'm assuming for translating we could do less... Anyway, does this site have an actual owner or is it just @jakobkogler by default? Is it a charity? How does that impact bank accounts? How might that impact taxes? |
Ownership is somewhat vaguely defined here... For GitHub, our org has the following structure:
It appears that any of the "owners" essentially have full control over everything in the GitHub organization. For the domain name, formally the owner is Jakob, but I believe I have access to all functionality, except ownership transfer (e.g. I can change DNS records, or renew registration, if needed). For the actual hosting, it is currently done at https://cp-algorithms.com/ by Jakob with Firebase (I think), and at https://gh.cp-algorithms.com/ via GitHub pages. The latter is a backup option, so if something happens with the Firebase, in principle, we can fully switch to GitHub pages, though when we checked, it appeared that Firebase is marginally better at things like ping/loading time for users, which is why we still use it for the main domain. We do not have a registered entity in our name. The opencollective uses Open Source Collective as our fiscal host. According to their page, contributions to it are not deductible as charitable contributions, and they also take a cut (around 15%, apparently) on all donations, and have some annoying rules on how the funds can be used. It means that, mainly, the funds are supposed to be used as reimbursements when someone pays out of pocket, or to pay for someone's time, but in the latter case, it should be done via an invoice to us by whoever did the work, and this might mean that they need to have a business entity to make one, or e.g. be a part of a cooperative that might handle it on their behalf. |
Ok thanks for the info! What's the advantage to using the open collective thing vs a patreon, buy me a coffee, or PayPal? I'm assuming that if we were to collect donations, we'd want services the people already have. I think PayPal take 5% or less (based on my experience with eBay). Also,not it seems much like competitive programming in general, our traffic is quite Indian based, which should perhaps inform our choices of payment options. I'm not sure how tax deductibility matters given that the donations are likely to be small. Likely only big sponsors (like a business) would care about the tax deduction stuff. I only recognize a few names in the GitHub list. Namely the people that actually responded to this post. It may be wise to limit access to non-contributors/former contributors. Perhaps have a thank you page or something. Seems like a risk imo. |
You can use the following to donate at the moment:
For Patreon / buy me a coffee, I have no experience with those. Main advantage of the open collective is that there is a fiscal host, which is an entity that handles tax and legal stuff in our stead. I assume that Patreon / Buy me a coffee only collect funds, and are not financial hosts, meaning that we would need to establish our own registered entity, or collect funds in someone's personal name? I think also GitHub sponsors options for payouts are either fiscal hosts (the link also has some other supported hosts for this) or a self-controlled Stripe Connect account, which I have no experience with. |
Please feel free to remove me. I only contributed a little bit many years ago. |
Hello, regular cp-algo user here. (disclaimer: I'm not part of CPI, so some of the info might be inaccurate). I don't think it makes sense to compare cp-algo and usaco.guide, because as jxu said, they are different things. usaco.guide's goal is to be a guide to get from zero knowledge to usaco gold/plat/camp, and it doesn't make sense for cp-algo to adopt a similar goal; notably, this is the reason why a lot of advanced topics are minimally covered in usaco.guide, although this is getting better now. Also, a big reason why usaco.guide has a lot more maintainers is because CPI has dedicated content authors writing the content (also, they have other revenue from teaching classes, but I don't think content authors are paid). In any case, cp-algo is great and probably the best resource for a lot of topics (polynomials yayy). |
Off-topic: when I (and I'm guessing all the owners) started there was no usaco.guide. There were the USACO practice pages and the intro lessons that came with them and then everything else was to google. Then in college Danny Sleator (darooha) had a weekly lecture for his CP mini-course where I learned a lot more. I wish I had more time in school to devote to it but I had other classes. He and the TA Daniel Anderson were the ones who taught me a nice way of looking at binary search, which is starting with an induction hypothesis for monotonic function f: f(lo) = 0, f(hi) = 1, then shrinking the range hi - lo until it is 1. It is much simpler than other forms that have a bunch of special cases and tricky indexing. |
I guess the understanding of the goal of the site is nebulous. But what is not, is the lack of articles being translated/produced. We only produced 3 or 4 articles a year. The stated goal of the site was to translate the Russian website. There are at least 16 articles that need to be translated. This would take 4 or 5 years IF the only new articles were translated articles! Personally, I use both sites only because both sites are missing on certain topics, but if the cp-algorithms were more complete I wouldn't. I think the biggest hole is the lack of dp articles which is why I wrote an intro article but got discouraged from continuing when it seemed the admins were out. Thankfully, another was inspired and wrote a knapsack article was more technical than the one I was writing (and had stopped). Regarding usaco-guide,I don't like the formatting and sometimes it's too mathematical (at least initially) which is not friendly to less mathematically literate people. This why my I wrote the intro to dp article in the way that I did. Often, books mention the principle of optimality and repeating sub problems. Which is needlessly technical in my view, where the principle of not repeating work, is more approachable. Anyway, having some revenue would allow for bounties which are available and working according to their spreadsheet on usaco.guides repo. Considering they have a similar traffic level, I believe that this is the most promising direction. Additionally, making it more obvious that this is a volunteer effort and visitors can contribute articles/request articles would be a good idea. Apparently are index page is most frequently visited. I'll reprioritize that page in a pull request when I get to a computer. |
I've been less interested in this project since I started reviewing the fundamentals in CLRS more. The more technical and formal proof-based view actually appeals to me, but that puts me more on the math-person side than competition programmer side. I would recommend most learners read it, but it seems no one wants to use a real textbook these days versus reading a website. |
On-topic: maybe this is just me, but I would like the main authors of each article listed at the top to give them proper credit and incentivize the creation of new articles. |
I don't mind that , but it's likely implied by the contributors. I think adding a thank you page to authors and sponsors and reprioritizing the main page to emphasize the volunteer effort and ability to contribute (both with articles and donations). Additionally, I'd like suggested articles section perhaps (Yes, I know the wiki exists on the repo.) I'll likely change it around soon. |
For example, CLRS has segment trees and join-based tree algorithms as questions after one of the chapters. Because of the proof-based approach, it's space-constrained, and doesn't really get to the competition-grade stuff. The proofs aren't of the Bird-Meertens quality either, and mostly are hard-to-read handwaving. The point is, quality of content on cp-algorithms is considerably higher that what you can get from CLRS, even though in theory (with sufficient amount of resources) cp-algorithms could have been better yet. I don't think "losing" is a thing in this context, especially given this content was produced by volunteers and completely for free. Wouldn't it be better to reframe this issue into something actionable, such as "how can we improve quality of the content further" or "how to get more contributors to participate"? |
I had to look up Bird-Meertens and that is a logic formalism which was never the point of proofs in an algorithms book. The notation can be a little abstract or dense but it all exists for a reason. The most important thing the book teaches you is algorithmic thinking and really understanding an algorithm, e.g. the section on KMP string matching is the most complete treatment I've seen anywhere. It is the most thorough to me for the fundamentals. Maybe for competition programming readers they want to solve a problem as quickly as possible, but personally I like taking my time with Project Euler problems (I'm very slow).
I agree and wanted to mention that point too. Producing cp-algorithms isn't a competition. We are not needing of funding according to Jakob and we don't have a bottom line to meet every quarter. |
I think we all would find ridiculous the idea of solving high-school algebra problems without using any formulas, by just writing out the answer after thinking sufficiently hard. For some reason there's still a disagreement when the same happens in algorithm design, and it's probably not a well-informed disagreement. B-M is the logic formalism intended to produce solutions for programming problems step by step, i.e. without "thinking hard and writing down the answer". CLRS is doing the exact opposite: conjuring algorithms out of thin air and "proving" they're correct without any kind of formalism. That doesn't help neither inventing new algorithms, nor "really" understanding them. From what I can see from a glance to Scholar, none of 4 authors is specializing in general-purpose algorithm design at all (see works of Tarjan or Knuth for comparison). For an example of deriving KMP try Pearls of functional algorithm design, chapter 17. There's a more modern derivation with partial evaluation available from other sources though. Even though original e-maxx articles were not formal, they still were mostly about showing how to invent the algorithm, not to learn it, and that's why they're better than most of material in CLRS. |
What are you even talking about? Never mind. It is getting off-topic and was my fault for starting the off-topic discussion. |
The lack of action is a serious problem which is why it is framed in the way that it is. This was a problem for over a year. If there's no agreement on some sort of actionable plan going forward, this project is dead. I've proposed some ideas; namely,getting some funding for future articles, which seems to be reasonable given a project similar to ours is successfully implementing it. Do we have any better ideas? Failure to have any attempt at corrective action, will kill this project. |
Since there's been no input, what is the expectation for @jakobkogler? It's a little strange to hold the domain but also not be an active contributor. It's essentially like holding the site hostage in my honest opinion. Again, from what I can tell, he's been the overwhelming contributor to the site so perhaps making a "Contributor Legends" page. I'm reluctant to pour in effort into a site where my suggestions are shot down but no alternatives are proposed. I'm not sure what I should be doing as a consequence. I'd like to add more dp articles and get some funding for the site and solicit more authors but given the site's. I'm confused on what I'm supposed to do. |
I don't think saying Jakob is holding the site hostage is appropriate. We don't really suffer any adverse effects, or pressure, etc from him holding the domain, at least right now. That aside, which suggestions were shot down? As I mentioned in my earlier replies, I'd very much welcome any specific suggestions to improve things, it's just that you would also need to be the person actually doing and researching those things. Do you want to do something specific with regards to raising funds? If you want to add something about it to the website itself, I earlier suggested to make a pull request, which we'd be able to discuss. Or do you mean doing outreach in other ways? |
I'd put in effort to raise funds (setting up accounts, adding solicitations for donations,etc ) and make new articles but I'm not going to do it with the site's future being insecure. The impression I've gotten is that he's burnt out and wanting to actively contribute but still wants to remain in control. The site's primary value is the domain name because it gets traffic, otherwise, some of my frustration would be moot as it would just make sense to fork the project and not come across as such a heel. |
What kind of security are you referring to exactly?.. |
I mean that someone effectively owning the website by holding the domain name but also not actively contributing. It's scary that the site could become defunct, after significant efforts are made. |
I will discuss the situation with Jakob. I really don't think that we're in any imminent threat of site going defunct due to that, though. I fully trust Jakob not to commit any adverse actions via domain admin panel, and I have the ability to extend the registration, change DNS records, etc. Having an ability to add more members to admin panel would be nice for me, as I don't want to eventually turn out to be a single point of failure, but that's about it. Furthermore, I'd rather associate the site with GitHub org and repo than the domain name. If we somehow lose the domain, it might be painful, but we as well can deploy it on another domain, if necessary, and ultimately cp-algorithms is where the people who contribute to it are. |
I brought it up in another issue but I fear the moment you start adding money involved, the site will be flooded with low-quality AI submissions. Maybe I am being cynical, but the bigger the site gets the worse the problem will become. Smaller-scale versions of these: There is already so much low quality AI stuff online that anything genuinely made/curated by human experts, like MDN and cppreference, is becoming more valuable. I would rather keep the site as it is with few new additions than have it devolve into geeksforgeeks. |
@jxu Sorry, that was never my intention (at least not in a malicious way). I'm gladly share or completely hand over the project, and related things like the domain.
|
|
How they are winning:
Also, it's unclear on what our web traffic is. This should be at least be available to maintainers.
The text was updated successfully, but these errors were encountered: