2,302 karma · joined February 15, 2011
The article is talking about middle distance running, typically 800m-3000m, not long-distance running. 1s/400m is actually pretty huge in competition.
> you'd be liable to kick each other.
Front-to-back contact happens sometimes, even in professional races.
That doesn't mean everyone played their hand well in 2016 - clearly they didn't. By the way, check out Centrowitz's little shimmy at maybe 450m to go/2:50 in that race - he made sure to be in front when it got going, that's what makes his run brilliant and not just lucky.
For real examples of leading being a cost in a fast race, see the most recent two major championships - worlds 2022 https://www.youtube.com/watch?v=QcRrBYx2XG8 and the Olympic final of 2020/21 https://www.youtube.com/watch?v=us9bM_WGYlY. Both are really fast as championships go, and in both the leader for much of the race loses. Would they still have lost if someone else had been in front? ...Maybe. But I think it would've been closer.
It is worth noting that for mid-d races it's not just about countering wind, but also air resistance. There is a significant performance impact even if it's not windy. See for instance https://www.runnersworld.com/training/a20823445/does-draftin...: "Pugh runs some calculations to determine that at 4:30 mile pace, drafting one meter behind another runner on a still day saves about 80% of the energy you'd otherwise spend fighting air resistance. That corresponds to about 1 second per 400 meters at that pace, and more on windy days." (Highly recommend Hutchinson's other work on the running and sports science, btw.)
(I am sure you know this. I'm mentioning it for others, because it's applicable to Sowinski's work, far more so than your own pacing for the longer races.)
The classic example here is the 2016 Olympic 1500m final (https://www.youtube.com/watch?v=Grf_62s_95w). Centrowitz should not have won that on paper. It ironically seems to have revolutionized the event, in a sense - championships have gotten really fast since.
In fact Kipchoge's legal world record (the 2:01:09, not the 1:59) had pacemakers for the first 25km (of 42.2).
(it puts things in the global namespace, but for the typical calculator use case that's probably fine)
(Sage seems to work like this too - it may use sympy under the hood)
This is straightforward when you just think of buffers as being source files in your IDE, but it's not limited to that - you can also complete from a dired buffer, or your compiler output buffer, or your REPL. So you can get a filename to expand, even though no source code file actually contains that filename. If instead of dired and compile-mode you were using a separate file manager, and a separate terminal window to compile, you'd have text in three separate programs and no expectation that the text editor in your IDE would be able to see the other two.
In vanilla emacs you need a RET, but I bet that like many people, OP's using a mechanism that will just select the matching item if there's a unique match, rather than the built-in buffer selection mechanism.
I use ido (with flx-ido for fuzzy completions), and it works for me as stated: C-i in the minibuffer runs `ido-complete`, which selects the unique completion if there's only one. (By default, that is, this is emacs and so of course there's a variable `ido-confirm-unique-completion` that you can set to customize this behavior.)
Timsort is from 2002. Not sure where this comes from. Perhaps it wasn't as popular or widely known in 2008 as it is now, but I actually learned about it at about that time. See also:
https://mail.python.org/pipermail/python-dev/2002-July/02683...
(edit: timsort was introduced to Java in 2009, per https://bugs.openjdk.org/browse/JDK-6804124, and knowledge of it would probably have spread much further from that point, so maybe that's the source of confusion?)
(and of course yes, there can also be big general-purpose channels with a lower signal-to-noise ratio)
One thing I don't think you can do with loop/recur, though, is optimize more complicated bits of recursion than a single function that calls itself. I.e. imagine a recursive call pattern that goes like f -> g -> f -> g -> ...
(edit: I'm pretty sure this is why trampoline exists, though I've never really played with it... https://clojuredocs.org/clojure.core/trampoline)
See https://en.wikipedia.org/wiki/Tail_call for more. Or SICP might be a good resource. https://sarabander.github.io/sicp/html/1_002e2.xhtml
The problem* is that if a prompt changes slightly then it won't be a cache hit.
* okay, one problem.
The source code shows that it's using pickling to store OpenAI responses on the local filesystem. See here:
https://github.com/ianb/infinite-ai-array/blob/main/iaia/gpt...
and here:
https://github.com/ianb/infinite-ai-array/blob/main/iaia/gpt...
As I understand it, if you are willing to run proprietary code you can sometimes get better drivers. I would be fine with that, personally, but not everyone agrees. ("Proprietary" refers to availability of source code - some drivers are free-as-in-cost but not open source, and you might have worse performance with open source drivers. This might just be Nvidia, or it might be AMD/Intel too.)
However, I'd say the decision between it and the Oryx (which OP has on their poll) is about OP's needs and preferences, rather than one strictly beating the other.
It has a long battery life even after a few years of use, compared to other laptops I've used (higher rated capacity, and probably lower power consumption than the Oryx). It's very thin and light, but still fast and doesn't get very hot.
One caveat though: it's got no discrete GPU, which may or may not matter for you. (Probably that accounts for a good part of the battery life.) If the Lemur were my only computer I'd probably regret it on that basis. Its specs, even setting aside the GPU, are also going to be less impressive than the Oryx.
But the Lemur is about half the weight - I would happily trade the performance for battery life and mobility. I also like the ability to charge with USB-C - a non-power-hungry laptop means you don't require a special power connector (or more advanced USB power delivery that IIUC isn't really widespread yet).
This makes it sound like most Noldor were children of Feanor or that most of them followed Feanor and his sons, but that's not the case. The sons of Feanor and their followers were first to Middle-Earth - is that what you mean by 'main'? It's stated a few times that there weren't as many of them. The Noldor were an entire people, and most were neither Feanor's children nor followers of his children. (They were technically all under Feanor as high king of the Noldor for a time, though.) This is from the Silmarillion, describing their travel through Valinor on the way to Middle-Earth:
> Fëanor and his following were in the van, but the greater host came behind under Fingolfin; and he marched against his wisdom, because Fingon his son so urged him
and then after those who didn't follow Feanor cross to Middle-Earth in the north, many die, but there are still more of them:
> for the agony of those that endured the crossing of the Ice had been great, and Fingolfin held the sons the accomplices of their father. Then there was peril of strife between the hosts; but grievous as were their losses upon the road, the people of Fingolfin and of Finrod son of Finarfin were still more numerous than the followers of Fëanor,
(I'm arguing against what I see as your central point, but to be fair, 'without sacrificing clarity' is doing a bit of work in the paragraph above... your example is actually a good case of a bit of additional length being actually worth it. I would say timeoutMs or timeoutSecs are good shorter alternatives, "ms" and "secs" being widespread and clear abbreviations. You're completely right that 'timeout' is insufficiently clear for a purely numeric type, though I'd disagree that you need all that much type system magic to make it OK. For example calling a `java.time.Duration` `timeout` seems fine.)
I'm thinking here about "People is around the field watching the game", and other input errors, not necessarily output errors, but maybe if I thought about it a little more I'd be able to make similar arguments for accepting weirder outputs? Not as confident about that. For inputs, the hopeful effect of training/validating against such examples would be to make the model somewhat able to deal with imperfect inputs when the overall meaning is clear.