Open fj128 opened 6 years ago
I like this a lot.
I was unsure how much I should spam https://github.com/Vlad-Shcherbina/icfpc2018-tbd/issues/10#issuecomment-406808394 to get everybody who writes solvers to read it. It would be nice to have a place where I could post it once and be certain that everybody who needs it will see it.
It appears to me that it has better chance at working than earthdok's OKR document idea (#24). First, slack channel is more visible, you are reminded of its existence every time new announcement is made. Second, it's easier to remember to post functionality announcement because of the desire to get your stuff used by others. No need for "I'm off to bed" announcements.
It will be important to limit noise in this channel, it will only work if everybody can afford to read it.
I think that we need a simple single-page wiki for tracking these things in addition to the channel. Github issues are wholly inadequate to the task IMO, they are too big and coarse and get everywhere don't provide a big picture. Actually not a wiki but README.md or another single file.
edit: so pretty much exactly @earthdok's OKR document idea (#24) lol
Something like
So basically a post in this channel more often than not corresponds to something getting an emoji checkmark (and possibly a new line, if you couldn't be bothered to add it before starting working on it) in that wiki page, with a link to the file where it was implemented and a description in a comment there.
To contrast with earthdok's OKRs, the emphasis here is on what's done, not on who is working on the stuff that's not done, is that correct?
My concern is the possible redundancy between this document and the source itself, assuming it's well structured and documented. Redundancy will result in this document being out of sync with reality. To avoid that, it should be limited to high-level overview that does not fit at the lower levels of the hierarchy.
How about this:
bot_utils.py
module. But there is no need to mechanically list all bot utilities in the doc because they are already listed in the code. And no need to give any details about the individual function because it's in its docstring already. Perhaps it would make sense to put the main()
function with the usage examples at the beginning of the module, right after the docstring, to make it more prominent.__init__.py
for continuity. Or maybe into package/README.md
for discoverability.Advantages: no redundancy, and it encourages people to read the source (which is a useful habit because you can't document everything).
My concern is the possible redundancy between this document and the source itself, assuming it's well structured and documented.
I'm somewhat confused by your comment. I think you're misunderstanding fj's idea as if e.g. "classes" should be the actual list of classes documented in the wiki page. Whereas the idea as I understand it is that is should literally say "classes". As in, "command classes have been implemented". You can't go any higher-level than that.
My concern was precisely that figuring out the status of a particular feature involved some combination of the following:
These are ordered roughly in the order of increasing annoyance. It should definitely be possible to get the big picture without having to read any code.
Ok, yes, if it does not repeat the layout of the source tree too much and does not list too many things that's fine.
Perhaps instead of scratch/production distinction we should think in three categories:
Producton makes no distinction between 2 and 3, and probably no point trying to expess it in the source layout, but this could be useful categories in our heads.
Yes, I meant that as literally what could be in that file at some point in this contest, word for word.
I think that coordinating work (who works on what) should be done in some transient channel, the purpose of the file should be more to give an overview of what's already done and what should be done in the near future.
I want a Slack channel (or whatever we are going to use the next time) where I can see a post saying "I've implemented data_files.py that has a lightning_problem(n) function that gives you the data, you all should use it". And other similar posts.
Even with our disastrous failures to implement the necessary stuff, there was more failure on top of that, I remember @manpages being uncharacteristically rude about someone's code storing problems in several different ways while being unaware himself that we actually had had the right way to access problems for the past 12 hours or something.
It is impossible to restrict the main channel for any sort of on-topic discussion and offload off-topic discussions to specific channels (like "lightning", "solvers" or whatnot). The main channel is going to be chaotic, deal with it.
But I think that we could do with a channel dedicated specifically to announcements of new functionality in code that improves everyone's lives, as far as writing code specifically goes. Like, "Diff now has an operator for diff[axis] for axis in [0, 1, 2]". That kind of stuff.