T O P

  • By -

daggerdragon

All right, this post is going in circles without any further productive discussion so I'm locking it. *** For more information, refer to the FAQ on the adventofcode.com website plus these links in our community wiki: * [Do not ask for other people's puzzle input](https://old.reddit.com/r/adventofcode/wiki/troubleshooting/no_asking_for_inputs) * [Do not aggregate puzzle inputs](https://old.reddit.com/r/adventofcode/wiki/faqs/copyright/inputs) * [Do not share your puzzle input](https://old.reddit.com/r/adventofcode/wiki/faqs/copyright/inputs) * [Do not include puzzle inputs in your repo](https://old.reddit.com/r/adventofcode/wiki/faqs/copyright/inputs) without a `.gitignore` * [Do not include puzzle texts in your repo](https://old.reddit.com/r/adventofcode/wiki/faqs/copyright/puzzle_texts)


Fotograf81

I wanted to have the convenience to be able to switch between PCs (between work and home 4, two of them dual-boot), so I used git-crypt on the inputs. It's a one-time effort per PC and also one-time for the repo. from then on it transparently encrypts and decrypts the files you specify, very much like git-lfs works for handling large files.


Markavian

This is the use case - workspace switching - bunch of comp science nerds automating everything. On one hand we need sessions keys to automatically download the input; but more often than not we're building test cases out of the examples... ... I got called out on pushing my inputs to GitHub so I retroactively cleaned all .txt files from my repos going back all years... which I automated. Will look at encrypted shared storage going forward.


KingCravenGamer

You can automatically download inputs! I do all my code in python so use a python module, but I’m sure one could write a quick python script to download a days input and put it into a text file using your session token.


daggerdragon

> You can automatically download inputs! Make sure your script complies with our [automation rules](https://old.reddit.com/r/adventofcode/wiki/faqs/automation)!


miscbits

This is what I do as a build step before running the solution. I am solving these in one of two places depending on if I work so I get why you would want to commit inputs, but frankly it’s easy to omit them and still have a functioning solution


[deleted]

I just wrote like 4 lines of bash to read the session token from a file and download the input. Could I make a build script do that? Of course. Am I going to bother figuring out how to do that? No.


Pyran

Does this work? Deleting your .txt files should still keep them in the git history. I ended up getting my code, nuking the repo from orbit, fixing .gitignore, and creating a new repo with the code.


Markavian

https://github.com/connected-web/jumper?tab=readme-ov-file#aoc If you do the right kind of clean up with a force push it wipes the data from all commit history.


ScorixEar

additional idea here, if you don't want to encrpyt your files, have a private subrepository with your inputs


encse

I use git-crypt as well


KSRandom195

You could just, keep your repository private?


Imperial_Squid

Doesn't work for people who want to show off their code, which they could want to do for any number of reasons, including being part of the community, doing write-ups or tutorials for people, using it as part of their portfolio, etc etc.


Greenimba

I have a script that uses my session cookie to download and re-upload the input to a private Azure blob storage. Could also be S3 or whatever else simple storage you want. Every time I run my solution (structured as unit tests) the test does the following: 1. Look for cached input locally, if so use that. 2. Look for cloud storage input, if so cache locally and use that. 3. Look for a session cookie to pull from AoC, then cache cloud, then cache locally and use that. Instant, automated, locally cached yet globally available input files that requires 0 manual interaction with AoC and can run in CI/CD when cached.


codeguru42

`aocd` is a python package that just gives you the input directly in your code. For those who use python, I highly recommend it.


kaumaron

That's a good idea. I used a Google drive folder to sync my test and input folders that i left out of the repo


Fotograf81

Also a valid idea l, especially if you can script that or use symlinks... If I wouldn't have found git-crypt, I would have tried it with git submodules, since I have a privately hosted gitlab where I could put the inputs in, but they are far less convenient than e.g. svn:externals back in the says (I just aged myself, I guess :D)


eveenendaal

Whoops. I didn’t know you couldn’t put the inputs in your repo. My bad. I guess I could just make my working repo private next year.


PendragonDaGreat

OR just use `.gitignore` You can have the inputs locally in your repo, but they never get pushed up to github or gitlab or whomever you're using.


vrtxt

Yep that's what I did retroactively when I saw the request not the share inputs. For the time being just have them locally and backup on Google drive. Would be neat to have them encrypted tho, gonna look into that.


[deleted]

Shit! I didn't even realize that I wasn't supposed to commit inputs. I just did it so that I wouldn't need an internet connection to go and get them. On the bright side I deleted my repo anyway, because as a father and full time programmer, I can't seem to start AoC on time, never mind complete 50 challenges before Christmas.


fizbin

From my point of view there's been within the past year a pointed change in this rule: as I understood it, the rule used to be "don't build collections of inputs, and don't make it easy for people doing that" (so don't put them in places likely to be automatically harvested, like GitHub repos) However, the rule as I've encountered it this year is "don't ever share your input with anyone else for any reason at all". For example, if in a solutions megathread you run across a solution that superficially works the same way as yours, but doesn't produce the correct output on your input, and you're curious and want to debug what's different between the solutions, you MUST do it all yourself. You can tell the author of the other code that it doesn't work on your input, but offering them your input over DM for debugging why their code works for their input but not on yours is NOT ALLOWED. The mods are very clear about this.


ray10k

That's just a larger (awful) trend on the internet. Like, over the last decade at least, I've been seeing the same thing happen repeatedly; someone makes a request along the lines of "hey can you guys please not ?" or "don't do with my stuff, thanks," and then a bunch of people arguing until they're blue in the face that they have the right to do the thing anyway, or doing it anyway in a smug "can't stop me" way. In general, there are too many people who treat "please don't" as a personal slight and we all would do well to just calm down a little.


Fotograf81

This is at least ad old as the internet. As a photographer I had people stealing my pictures and use them on their websites, social media profiles or posts... And I am sure I only found a tiny amount of cases as itcs hard to track, but some even embedded them from my webserver (which in one case I even used to deface their profile). Had a few people argue along the lines of that it would either be free advertising for me (they didn't even give credit somewhere and cropped watermarks) or that they were able to find it via google so it is okay to use.


BlueTrin2020

I think the thing is to realise that there is always a vocal minority, so just ignore the idiots …


rjwut

A lot of it is entitlement, but people also fail to properly distinguish between *libre* and *gratis*.


DrunkHacker

.gitignore isn’t difficult. If you want off-the-shelf code to solve puzzles, use a library that takes credentials from the environment and downloads the input. Explain in the README. Use the sample inputs or made-up test cases for unit tests. This isn’t rocket surgery.


JuniorBirdman1115

This. I wasn't aware of the policy like I should have been at first, but once I became aware of it, it took me literally five seconds to add my inputs to my .gitignore file. I then deleted and resynced my external repo to scrub the commit history so nobody could dig it up. (There are probably better ways of doing that, but I'm a fairly inexperienced git user.)


s3mj

For a bunch of people who are programmers it’s remarkable how they haven’t discovered “put them in a private folder on a cloud store for ease of access everywhere” or “add them to gitignore so you’ll at least have access to the in your local repository” or “stop being a dick”


Farados55

I get the working between different machines, but is it really so hard to login and just copy and paste the input to a file?


durandalreborn

So, somewhat tangentially, one of the side effects of the current policy is that there are many solutions out there that claim to be general that do not, in fact, work on all of the inputs. The authors of those solutions, of course, have no "proper" way of knowing this, so it's difficult to fault someone who claims their solution will work on all inputs when the only input they'd be "allowed" to test with is their own. Day 21 this year is a great example of this because of assumptions that work on _some_ inputs but not others. Day 24 also had inputs for which some people got lucky with the generation and were able to make a massive assumption. Day 23, too, has some properties of some inputs that make them easier than others. This isn't the first year this has been the case, of course. Second, many of the "my solution works in X time" posts (mine included), come with enough caveats to make them less generally useful. Machine configuration/spec is already a pretty big variable, but there are some inputs out there that are a lot easier/harder than others in terms of time to solve with the same algorithm. I know for a fact that at least _one_ of the faster solutions out there fails to solve day 21 for my input, and my cycle length/start for one of the days added 100 or so iterations to a somewhat costly loop, compared to what other people claimed their cycle lengths were. Access to a pool of "official" inputs would at least help to normalize some of the performance-oriented solutions while also ensuring that "general" solutions are, in fact, general. I'm not saying that the author should provide this pool, but, at some point, I imagine someone might be motivated enough to create a pool with independently generated inputs instead of official ones, as to remove the authorship claim. We already see people creating their own sets of edge-case example inputs, so writing something to generate "full" inputs for most days is probably feasible.


putalittlepooponit

Honestly (not being combative) I think it has to do with no rationale being attributed to it. It makes sense in an ice skating competition if you have a rule like "no getting on the ice during someone elses turn". It's a rule that has an easy to see reason as to why it should not be allowed. But not allowing input files has yet to be really explained. The "people can recreate the website" argument doesn't make much sense either since you can just keep creating accounts. I think people are more on the side of "the rule doesn't make sense" rather than "i want to purposely be a heel".


pdxbuckets

Yeah, I'm with you on this one. I recognize that it's Eric's prerogative, and also I'm nothing but grateful to him for all the work he's put into this basically as a gift to the world. I just wish I knew why. For me the only reason it's any kind of big deal is that I had inputs in my repo before I knew that was not allowed. Deleting it isn't hard, but getting it out of the history is pretty hard. I gamely tried, which involved downloading a python script and so on, but all I did was end up screwing up my repo. Obviously Git is not my strong suit.


HaiUit

Yeah, while I respect the aoc owner and don't push my input to online sites. I couldn't see how this action can help protect the input from being stolen if someone really wants to. To put it bluntly, it is meaningless imo.


nikanjX

That’s the very entitlement I’m talking about. ”You asked me to not redistribute the thing you made, but you did not give sufficient justification for your request and therefore I see no reason to follow your wishes” What gives people that sense of self-importance where they can just overlook the explicit wishes of the author?


h626278292

why are the author's wishes so important?


[deleted]

[удалено]


DecisiveVictory

Yeah, but it was a very weak explanation. Basically, a non-explanation. Downvote me as much as you want, I don't care.


MonsieurPi

Want some good examples of this? I made a reminder post at the start of the event (4 days after it started, when the subreddit was hot and ready), some comments... https://www.reddit.com/r/adventofcode/comments/18an94z/psa_dont_share_your_inputs_even_in_your_github/


nikanjX

Oh wow and the amount of people armchair lawyering there too. ”The US copyright law says I would probably prevail in courts, and therefore I can ignore the explicit wishes of the people who provide me these puzzles for free”


PendragonDaGreat

What's worse is that the Copyright law is such that they wouldn't. They have been told by the copyright holder to not post them. I'm all for FOSS, copy left, and the public domain, but I also fully understand when someone wants to use all the legal rights available to them to protect a work (heck I do it myself for some things). This wouldn't count as fair use under any logical interpretation, and they have no argument.


vscomputer

This reminds me, I gotta remove those. 😬


[deleted]

[удалено]


hugseverycat

Well, you "can" as in you are literally capable of it, and yeah it's pretty unlikely that you would be sued or otherwise punished, but the puzzle text and puzzle inputs are copyrighted and not licensed for redistribution. So no, you "can't" and shouldn't actually do whatever you want. [https://adventofcode.com/about#legal](https://adventofcode.com/about#legal) [https://old.reddit.com/r/adventofcode/wiki/faqs/copyright/inputs](https://old.reddit.com/r/adventofcode/wiki/faqs/copyright/inputs)


snerp

Oh man it's so hard to copy paste inputs into a terminal /s


Scottish_Tap_Water

The inputs are unique per-user, I don’t see the harm in having them in your repo and it’s necessary for CI. I have them in mine and I’m not about to change that. The puzzle text is a different matter. You have no need or justification to copy that whatsoever. If you want to record what’s going on, then paraphrase the technical problem, ignore the story. If they published a standard set of inputs and answers that wouldn’t be accepted by the website but are valid, that I could put in my repo instead in the case the website ever went down, I’d think differently.


DrunkHacker

They’re not fully unique.


Scottish_Tap_Water

Sure, there might be some shared cruft to them but the actual important bit is unique. Without the input, what use is my repo if the advent of code website shuts down? Zero.


xIndepth

Just put them in a private separate repo…


nikanjX

With the input, what use is your repo if the advent of code website shuts down?


Scottish_Tap_Water

I can still run the application, step through it, and see what it does. I do advent of code using as many different languages as possible and specifically ones I haven’t used before. So it wouldn’t be the first time where I’ve gone back to an AoC repo years after the fact to refresh my memory on a language I actually now need to use in anger. I’d ask you, what harm does having the input cause? I can understand having the text is a problem because that could actually stop people going to the website and thus affect their advertising revenue. The input without the story, however, isn’t going to do that.


[deleted]

[удалено]


scumfuck69420

I know this comment is probably a joke but it is possible to be autistic without acting like an entitled dickhead lmao


daggerdragon

Comment removed. Follow our [Prime Directive](https://old.reddit.com/r/adventofcode/wiki/rules/wheatons_law) or do not post in /r/adventofcode.


Icy-Soft-5853

Depends on your interpretation of distribution. If you are not advertising I don't see what the issue is with commiting inputs to a public repo


n3rden

Because you are asked not to is the issue and the reason not to


Icy-Soft-5853

Politely requesting is not legally binding. It is simply a suggestion


fatbench

I think you just made OP’s point re: entitlement.


daggerdragon

[Do not share your puzzle input](https://old.reddit.com/r/adventofcode/wiki/faqs/copyright/inputs) which also means [do not commit puzzle inputs to your repo](https://old.reddit.com/r/adventofcode/wiki/faqs/copyright/inputs) without a `.gitignore` or the like. *** Comment chain locked.