theamk
Joined 10 years ago
Joined 10 years ago
For personal services, even something as simple as HTTP basic auth on the webserver dramatically reduces the attack surface by blocking all probers and drive-by attacks.
The variable alone, however, is kinda suspicious - I'd do both variable and command-line flag, just for extra assurance.
(another idea might be to enforce docker, but I know some people run agents in VMs, so this won't work)
As someone who walks on the streets / uses public transport, Waymo was 100% in the right there. Wish all taxi services were like that.
Those protections exist and cost money - both to pay for customer support handing those, as well as to reimburse customer when the original money cannot be found anymore.
(And related, this is one of the big problems with cryptocurrencies: most people are not happy to know that one typo / software bug means their money is lost forever. Those protections on regular baking are there for a reason.)
But would anyone do this? No. If you are writing pool-based packet processor in Python, you'd deal in buffers (safe from overread), in C# you'd return Span/Memory (safe from overread) and only in C you'd return overread-prone raw pointer.
Not that you can blame programmers in this case - C simply lacks the facilities for safe memory access, such as bounded pointers or spans. And you can't really blame it on custom allocator - malloc() would have had the same problem.
Every language has a preferred way to deal with things. In C, it's raw pointers, which are very error prone. Other languages have something better. For example, if you were to implement custom allocator in C#, would you return raw pointer? Or maybe base array + offset pair? Of course not, you'd choose a Span or Memory, and those are not prone to buffer overruns.
Your solution for using unreliable Wikipedia is to cite it. My solution (and the way I was taught) is to simply _never use it_ for stuff which goes into the paper.
If I wanted to claim something ("widgets are quux"), I might certainly _start_ with Wikipedia, just to make sure that my understanding is correct and that I am not wasting my time, but if I want to use this in the paper, I will need to move to primary sources, read them and ensure that there is a good evidence that widgets are indeed quux.
So now that I spent all that time reading primary sources, I'd certainly cite them and not Wikipedia - after all, primary sources are better, and a single citation is enough. And in the case the Wikipedia author was wrong, I will avoid a mistake.
By extension, if I am citing Wikipedia, this means I have not found/read any better sources, and that just shows that I am lazy or maybe those widgets are not quux at all. Any advisor/reviewer would immediately point to this mistake - "Why are you citing Wikipedia here? Find a better source or remove the claim"
And that's how the rule is made - it's not "Don't cite Wikipedia [put ideas unattributed instead]", it is actually "Don't cite Wikipedia [find a better source and cit it instead]".
(Although I agree that some lazy people do former rather than latter)
(And sure, there are escape hatches - like Python has "recv_into" that could be used to implement heartbleed if you are really inclined to - but this would not be a realistic python program. In python, even with buffer reuse, you'd be using memoryview or similar that can't have a heartbleed problem)
In the research, there are often long paths that lead to the ideas: lunch room conversation -> paper 1 -> web search on term seen -> paper 2 -> web search on another term seen -> wikipedia page -> another wikipedia page -> original source (paper 3) -> paper 3's citation list -> paper 4 -> fact for your own paper
We always cite only the very last item in the chain, paper 4. I'd might cite other papers I've seen, but only if they are relevant. I was taught that the tertiary sources, like encyclopedias, are never to be cited, unless they have original facts which cannot be traced to other sources.
(And then proxying via your home is much faster and safer. You can do websocket-based proxy, but even exposing ssh server on port 443 works in a lot of places!)
(Just don't turn on ForwardAgent)
2>/dev/null && echo nopass || echo maybe) || echo none)"
Writing a longer command to get less details and shorter output - this is so LLM!A human would simply run the two commands in sequence and parse errors on the remote side - this would have gave more information about unexpected errors.
I remember Obnam being retired in 2017[0]. I was evaluating backup systems back then, and went to borg (and later to restic). But turns out, it came back 2020. I like the motivation [1]:
> Borg and Restic are both fine backup programs. I've been using Borg for a while. The point here for me is that I find implementing backup systems to be a fascinating hobby. Thus, I want to write my own. The act of developing being the point more than having something I can use myself. Everyone else should use something battle-tested, unless they want to help me build something they'd like to use themselves.