My dream has always been a toggle that switches between traditional loud sportscar exhaust and something on par with a stock BMW exhaust. Last time I checked physical switches still had a tendency to leak. The battery method could be the answer to an on-demand lower profile option.
This is super common, but the sound changes are less dependent in the exhaust and more dependent on the tuning.
In the simplest case there are exhaust cutouts that reroute the flow from a button push. Mercedes aftermarket mods are common here. But, there are also tuning changes that can be triggered in the ECU or timing changes in the valves, turbos, and other parts of the combustion flow with digital or analog input.
For instance, current EU emissions requirements keep a Ferrari F8 much quieter at idle than a 458 or 488 but it still can make the fun car sound at full throttle or with aftermarket modifications.
Look into the car you like to drive, there are many mods available, YMMV.
Alternatively, most magicians are intimately familiar with psychology and more knowledgable on how to appear as they wish in a context where appearance is being measured...
Alternatively, most magicians are intimately familiar with psychology and more knowledgable on how the brain is untrustworthy and subjective experience is a suggested hallucination therefore less likely to take it seriously enough to produce conditions, unlike most.
If that's all it was, then why magicians specifically? Wouldn't that apply to all performing arts (musicians, actors, sales representatives, newscasters, etc)?
Performing arts is about showing, where magic is about manipulation. Magicians need to go one level deeper.
I think sales representatives come closer to it, though manipulation is not required or a desired practice. Standup comedians could be another slightly similar job.
I am not sure if I should read your sentence as sarcasm. Because of its context i will interpret it straight.
Acting requires a deep understanding of human psychology. If i would have to bet who can pretend to be anything better, an actor or a magician I would bet on the actor every time.
I don't see how that changes anything? Actors pretend to be what they are not, and pretend to be in situations they are not. That is their job. Yes, method acting is one way out of many how they achieve this.
Just so we are on the same page recap of the discussion:
Observation: Magicians are less prone to mental disorders than other artists
Hypothesis1: Maybe they are not less prone, but better at hiding their mental disorders.
Follow on hypothesis2: Maybe they are better at hiding their mental disorders because they are more knowledgeable about psychology.
Now, how you check for this hypothesis is that you design a study which weeds out the truth. So it must be understood when I write my counter argument that it is speculation. It is in the absence of hard data. If anyone has evidence pointing either way that should trump such speculation.
Counterpoint to hypothesis1: There are other artist who we would expect to be just as good or even better to be pretending to be "okay". For example actors. So it feels unlikely to be just up to ability to pretend to be ok.
This is where the conversation was before your comment. Then you wrote what you wrote, which I interpret as "but some actors method act!" Is that a counterpoint to the counterpoint? Is that an alternate hypothesis? If so could you spell it out please? Sorry if this sounds harsh, I'm just trying to understand the argument you are making.
doctors can have huge blind spots that they fail to recognize. It's not because you are super smart and knowledgeable that you can't use a dose of humility
It's a total nonstarter for me. Bring unsure that I can find a working charging station, and have to go out if my way to take that risk sucks.
I've rented quite a few EVs long term and if you have to travel 200+ mile trips even 5% of the time they incite terrifying range anxiety in some (most) parts of the country (US).
If you are always or very nearly always under 100 miles a day, they're fine. Most _people_ live in that realm, but most _areas_ in the US are full of people who do not.
You know the little pocket within a pocket that most jeans have, in this future year of 2023? It's for a _pocket watch_, originally. Fashion tends to lead to vestigial details hanging around more or less indefinitely.
Funnily enough I've always heard that referred to as a "coin pocket", but since I live in a country that has barely used cash for the last 10+ years I thought this was very anachronistic and started putting my keys in there.
To give a shallow overview, transducers allow you to define steps in collection processing _per item_ rather than having collection processing as a series of transformations of collections.
So rather than processing the collection, passing it to the next function that processes the collection, passing it to the next... etc.. consuming all the CPU and memory that involves, you can define steps that are applied for each item in the collection thereby having the iteration through the collection happen once.
These steps (transducers) are also composable and reusable.
I suspect you know this, consider this a basic explanation for other people reading.
> That seems like insufficient magic for the respect that transducers seem to have.
This is 100% correct. It's amazing how over hyped they are.
If you have ever used C#'s LINQ you are using transducers. The fact that LINQ works item at a time instead of collection at a time is all that's being discussed. That if you say take the first two in a 1,000,000 long collection LINQ will only enumerate the first 2 items and not all 1,000,000 is the other behavior. And the way to do this is by composing operations using a "." operator into a "query" to run.
C# had had this since 2007. It doesn't require a fancy name, it doesn't require streams, it doesn't require "thought pieces" every few months for over a decade for people to "master thinking in linq". Just sequence your operations and get back to coding.
And Clojure is a really great language, but the amount of mental space occupied by transducers is a bad look for the language. Via analogy it's like watching people be amazed by for loops for over a decade. And I know they're are a lot of really smart people in the clojure community, so I honestly put it on Rich. Either on hyping or up so much when he released it like he just invented sliced bread and it's a deep advanced topic, or for how it's presented in the language that people have to understand so much beneath the abstraction layer to use it correctly.
Your average blub enterprise programmer has been using LINQ for 15 years and never needed 100 thought pieces in how to use it and reason about it. Yes it's a monad, yes it let's your short circuit, yes it's item at a time, but a user doesn't need to know lots of detail to use it. It's like watching a language community that can do calculus be continuously hypong on the fact it can do long division.
Clojure is an amazing language, transducers are not that special, figure out why they are so hyped in clojure.
Or maybe I have it backwards and linq/transducers really are partial differential equations and C# snuck it into the 4th grade curriculum and nobody noticed.
I think there's a big difference between transducers work and how other lazy stream libraries work. Not too familiar with LINQ but more with Java streams and Scala views and iterators. Usually these libraries wherever the work is forced, like in a final call of `.toList()` or whatnot, they are materializing something like a stack of iterators. Each iterator calls its child/children iterators and the pipeline logic is in the stack of `.next()` calls.
The difference with transducers is that the transformation logic is completely decoupled from the fact that this is happening in collections. That is what makes them usable outside of the context of collections, most famously in core.async where you can map/filter/mapcat/flatten/take/drop channels just like you do with collections. This only works because transducers are completely decoupled from either the fact that elements are coming from, or going into, a collection. I think it is a really fascinating and creative achievement in decoupling. Java Streams and Scala view/iterator/iterable transformations can never be reused in other contexts since they are fundamentally about the collections. Whatever kind of Observable/Async Stream/Future or other places where you might want map/filter/reduce functionality has to reimplement the whole set of these operations anew (see for example Akka Streams, RxJava)
I think these languages use “Collection” as another way of saying “iterable”. So the only thing such an object needs to provide is a “next()”. So a stack of lambdas/generators all working on a “next()” seem to be doing the same “per element” work of a Clojure transducer. Am I misunderstanding?
The difference is in the way that the transformations compose.
Iterators are generic over some iterable type `U` in `E, R, T: Iterator<E, R, U|T>, U: Iterable<E>` that they either directly or indirectly capture some nested Iterator.
However that means that code composing iterators must also be generic over that iterable `U`, so you can't simply take two transformation pipelines and concatenate them, because they will both provide an element source already.
Transducers separate the transformation part and the processing part.
So you can have a `E, R, T: Transform<E, R>` which doesn't have a generic type parameter for the Iterable, and a function `transduce<E, R, S: Source<E>, I: Sink<R>, T: Transform<E, R>>(source: S, tx: T) -> I` which contains all the transformation application machinery, be it iterator style `next()` operations, or stream based `pull/push` operations,
and a function `comp<E, R, S>(left: Transform<E, R>, right: Transform<R, S>) -> Transform<E, S>` that composes transformations. The way transformers are implemented, this `comp` operation is actually simply function composition.
Oh I see, so with transducers, you can use the same transform pipeline (stack of functions) across different composition contexts (iterable next(), function composition, channel transforming, etc). I see the utility now!
Still I think just the “next()” context is quite enough because you can have everyone use it by convention for everything, even things that aren’t collections. Like a fluent tensor library for example. This is based on a quick understanding of transducers…
Yes, but don't forget that you can't compose `next` based iterators.
That might be a small limitation, but it means that you can't do something like.
```js
let pipelineA = map(i => i+1); // or makeComplexPipelineA();
let pipelineB = filter(i => i.isEven()); // makeComplexPipelineB();
let pipeline = pipelineA.combine(pipelineB);
let result = [1,2,3,4,5].transform(pipeline);
```
I see, thank you! I hadn’t realized the hidden limitation in the usual iterator/generator/streams concepts in modern languages. It looks like the thing Linq and Java Streams have in common is that they’ve been added later, with a pragmatic focus on collections. They “bake in” iterator/next based composition. If you start from a more principled functional foundation, the limitation probably seems more jarring (why fix one “template parameter”?)
It also reinforces my view that you should try to separate logic and control flow as much as possible. At work, we use awful callback chains. There must be a better way to express the logic and hide the callback logic, even in C++ (lots of rope to … find alternative solutions.)
> If you have ever used C#'s LINQ you are using transducers. The fact that LINQ works item at a time instead of collection at a time is all that's being discussed. That if you say take the first two in a 1,000,000 long collection LINQ will only enumerate the first 2 items and not all 1,000,000 is the other behavior. And the way to do this is by composing operations using a "." operator into a "query" to run.
Isn't that just function composition to build the map function? I guess that where the magic can come in is that function composition is associative, which allows for some really interesting opportunities for runtime optimization that, so far as I know, haven't been seriously explored.
If IIRC technically it's a bit more. It's a monad just like function composition, but it's bind has to handle data threading and short-circuit behavior. If you squint it's not too differently than than a parser combinator over Applicative matching a sequence of characters. Composing operations to correct thread sequential data while handing short circuiting.
I'm not certain about the optimizations due to associativity. While yes function composition is associative, that just builds the query. Running the query itself must be sequential as each operation depends on the data from the prior, leaving I believe little room for optimization.
It’s been a while since I did any C#. How do I write a function that returns something that encapsulates the operations to perform on the stream that I can then compose with other operations? And can I then apply to whatever sequence abstraction I have? Isn’t it limited to things that implement IEnumerable? I seem to remember when transducers were introduced, one of the selling points was it wasn’t fixed to a specific sequence abstraction.
Transducers do not require streams. You might want to learn a bit more about Clojure before poorly generalizing about this feature of the language. The OP did use streams to explore some specific applications of transducers. To say that they are overhyped is to be hung up on the buzz surrounding their initial release nearly 8 years ago.
Yes, and like most language features it's not about the feature, it's about having _that feature_ in a language with other benefits.
Think generics in Go or concurrency (effects) in OCAML or smart pointers in Rust. Not at all unique things, but having them in the language with other benefits is worth some discussion as it may provide extra leverage in context.
It’s the mapping itself that can be composed with transducers. Where before you had pipelines of map/filter/whatever, now you have a single function representing the sequence operations, which can be used for any kind of sequence (a list in memory, or items coming in over a channel or message queue) item by item.
That sort of reminds of broadcast fusion [1] in Julia.
Funnily enough, Julia is where I came across the term transducers too, via the Transducers.jl package [2]. The article and the comments here now make me wonder what the difference is, between broadcast fusion and transducers.
Generally, yes, but I also think the fn1,fn2,fn3 can happen independently (which is why its powerful). So items of collection may be at different steps.
> To give a shallow overview, transducers allow you to define steps in collection processing _per item_ rather than having collection processing as a series of transformations of collections.
This is a much better and clearer explanation than the entire article.
Could someone explain this better? The definition in the wiki page appears to be leaving out some information that makes it necessary to understand.
Why is 2 + 2 + 1 = 5 not sufficient? It doesn't say unique proper divisors. The definition of proper divisors doesn't seem to explain either.
i.e. why is 10 not an untouchable number but 5 is?
Specifically given the precise definition given, anything should be touchable as 1 is a proper divisor, and you can sum any number of 1s to "touch" a number. Clearly we're missing some implicit restriction.
> not expressable the sum of all proper divisor of any positive integer
(Emphasis on all mine)
A proper divisor is a positive integer divisor of n other than n. Examples: 1 is a proper divisor of all positive integers except 1, 2 is a proper divisor of all even integers except for 2, 3 is a proper divisor of 6, 9, ..
By all proper divisor of a specific positive integer n we mean the set of all positive integers that divide n and are less than n. In particular the set does not allow for repetition (you cannot count a proper divisor twice). So 1+2+2=5 is not valid since you are counting twice 2.
10 is not untouchable since 1,2,7 are all proper divisor of 14.
5 is untouchable because it cannot be 1+p+q with p < q since p > 1 so q > 3 so 1+p+q>5 (recall all proper divisor are distinct). It cannot also be 1+p because then p=4 and if 4 is a proper divisor also 2 is a proper divisor of a number so 1,4 is not the set of all proper divisor of any number
I think you missed the (implicit) definition of “the sum”: If someone asked you “what is the sum of all the proper divisors of 8?”, would you say it's 1+2+4=7, or would you say, “well, it could be either 1+2+4=7, or 1+2+2+4=9, or 1+1+1+2+2+4+4+4=19, or…”?
Anyway, yes, reading such definitions comes with experience (what's called “mathematical maturity”: https://en.wikipedia.org/wiki/Mathematical_maturity) — you have to assume that everything being stated is well-defined and makes sense, that every word matters (e.g. you can't ignore the word “all” in “the sum of all proper divisors”, nor can you ignore the word “the”!), and then, if that doesn't work, try to see if alternative definitions make sense. Also, sometimes things are stated in two different ways; that's usually helpful. In this case, given that the first two sentences are:
> An untouchable number is a positive integer that cannot be expressed as the sum of all the proper divisors of any positive integer (including the untouchable number itself). That is, these numbers are not in the image of the aliquot sum function.
Note the “That is”: If the first way of stating the definition doesn't seem clear / doesn't seem to fit the example that immediately follows, then try the second sentence, specifically follow the “aliquot sum” link to https://en.wikipedia.org/w/index.php?title=Aliquot_sum&oldid... which makes it very clear:
> For example, the proper divisors of 12 (that is, the positive divisors of 12 that are not equal to 12) are 1, 2, 3, 4, and 6, so the aliquot sum of 12 is 16 i.e. (1 + 2 + 3 + 4 + 6).
[…]
> The untouchable numbers are the numbers that are not the aliquot sum of any other number.
It's somewhat implied by the first example on the Untouchable number page.
> The number 4 is not untouchable as it is equal to the sum of the proper divisors of 9: 1 + 3 = 4.
If repeated divisors were counted, that sum would be 7, not 4.
Another way to realize it would be to notice that 1 is a very special case if repetition counted. Would 1 be represented as a proper divisor infinite times? that would make every sum infinite. Or would there be a special case for why 1 is only counted once, but other numbers can be counted multiple times? or do you just exclude 1 from being a proper divisor?
If all the sums were infinite it wouldn't be interesting.. I suspect with the other 2 types of rules, almost none of the numbers would be "untouchable", which also makes it not interesting.
Count 1 only once and allowing repetition is this way. I found that 2 is "untouchable" since sum(1) = 1, sum(2) = 3, sum (3) = 4, sum(4) = 5. It's easy to see that every other sum will be larger than two.
All other even number is "touchable": for even n, take the lowest prime less than n and then multiply it by 2 a few times. With the 2s and the odd prime and the extra 1, it can be equal to n.
Similarly all other odd numbers are "touchable": for odd n, take the lowest prime p less than n and either multiply it by 2 if p = n - 2, or multiply it by 3 to make it even, then multiply by 2 one or more times and with the 1 it becomes odd n.
I suspect excluding 1 in the sum but allowing repetition is similarly trivial.
These comments ITT are great for understanding. I wish someone would update the Wikipedia article with a good explanation based on the comments ITT, so that future readers of the Wikipedia article could benefit from this information
> There's only one sum of all the proper divisors for any given integer.
This really seems to assume that uniqueness is an implicit property of each integer of such sums. I don't understand how you would know know that or how to discover that other than "you couldn't get the answers we're showing you unless you assumed that".
No, it only assumes that for every integer there exists a single, well defined set of "the proper divisors". Afterwards, summing all of them up is a trivial operation that can only possibly yield a single value.
It says "the sum of all the proper divisors", not "the sum of a sequence consisting of all the proper divisors". It makes no sense to consider repetitions there (it gets easily reduced to absurd when you do), and it's already clear from the definition without even having to look at examples.
I'm curious about this, another comment in the thread expressed the same opinion about math pages on wiki, while I've always heard the opposite opinion among mathematicians. Could you say a bit more on what makes pretty much all of the math pages on wiki very poorly written?
They're generally written in a way where it's not helpful to teach yourself about the topic, but is helpful to refresh yourself if you've previously learned about it elsewhere.
One way you could have figured that out was realizing that every number has 1 as a proper divisor, so even number would be trivially touchable if repetition was allowed
Math wiki pages are so bad. Would it kill them to use concrete examples? Why does it have to be written so that only mathematicians can understand it? It’s actually not that complicated once you know what they’re talking about, but the entry does nothing to explain it to a layman.
It’s a “thing” in certain mathematical circles to reduce everything to the purest possible definition and then refuse to sully that purity with pedestrian nonsense like practical examples.
Any attempt at requesting clarification is met with: “This is the only fully general definition” or some such.
It inevitably leads to articles that can’t be understood even in principle without understanding everything else already, because simple concepts are rephrased in terms of the most general (most abstracted) concepts.
My favourite is that they never miss an opportunity to rephrase alternation like 0,1,0,1 in terms of exponentials raised to complex powers.
Or computer algorithms that couldn’t have existed before the nineteen hundreds using symbols from Ancient Greek and maybe two other character sets just to make it more spicy if you want to “translate” it back into mere code.
The page does have concrete examples in the very first section after the lead? https://en.wikipedia.org/w/index.php?title=Untouchable_numbe... (avoiding edits from today) — it gives the example of how 4 is not untouchable and why 5 is, and the example it gives of 5 is what the GP is asking about.
It seems the root comment here had confusion/difficulty not with “proper divisor”, but with “the sum of all the” proper divisors.
In any case, if your problem is that this page doesn't explain "proper divisor", then note that the phrase "proper divisor" in the first sentence is a link that goes to the relevant section of the [[divisor]] article, which has lots of examples.
If the complaint behind “Math wiki pages are so bad” is simply that not every page explains everything from scratch but relies on the reader having to follow links, then this is an inherent property of a random-access reference work like an encyclopedia (rather than a careful linear presentation like a textbook), and the fact that mathematics is a subject with quite some depth (where understanding a topic requires understanding several others first).
This is not unique to mathematics articles, e.g. if you go to the Wikipedia article on "init", it says:
> In Unix-based computer operating systems, init (short for initialization) is the first process started during booting of the operating system.
where "Unix", "operating system", "process" and "booting" are wiki links: you need to follow the links if necessary and understand them first, as this page won't start by explaining what a computer is, what operating systems are, etc. This is true for basically all topics: clicking on https://en.wikipedia.org/wiki/Special:Random a few times, I find:
> Ustilaginoidea is a [[genus]] of [[fungi]] in the family [[Clavicipitaceae]].
where you need to understand "genus" and "fungi" first, or
> Masaumi Shimizu is a Japanese former professional baseball Catcher,and current the fourth squad battery coach for the Fukuoka SoftBank Hawks of Nippon Professional Baseball (NPB).
where "catcher", "battery" etc are links that need to be followed (this page won't start from first principles and explain sport, baseball, catcher, etc).
I think it may be instructive to compare Wikipedia math pages to something professionally published and edited like, say, The Princeton Companion to Mathematics. I just did that for a few random topics, and Wikipedia was in some cases easier to read and in some cases harder: it was not consistently better or worse. But doing this for more pages may be instructive — or simply pick some random math pages and show how they can be improved, while still remembering that in an encyclopedia much of the information necessary to understand a certain page will inevitably be at other pages.
Yes, I clicked the link and read that. It wasn’t actually very relevant and did not help me understand the original article. I eventually figured it out on my own by, yes, examining the two examples they gave and proving to myself how it works. The article has a bad explanation.
Untouchable numbers are a very simple idea. Any elementary school student who knows about divisors and prime numbers can have it explained to them in about ten minutes. The Wikipedia page for the article should be pitched so that a layman can understand it.
I understand that if you’re writing a cookbook, you have to decide if you’re pitching it first time chefs who need “how to boil water” explained to them or professional chefs who just need references for some ratios. What serves one audience wastes the time of the other. If you want to know how init works, you probably already know what Unix is. If you’re looking up a particular species of mushrooms, you probably know how genii and species work.
Untouchable numbers is a simple concept. It should not be pitched at professionals first. It should start with an explanation that a middle schooler can understand and then move on to advanced explanations in later sections.
I completely and very strongly agree that simple concepts should not be pitched at professionals, and should be explained as simply as possible! To get there, I'm trying to figure out the precise way in which you say this article could be better explained, and so far have got two answers:
• That there are no concrete examples on the page: this is not true, the page has a couple of concrete examples (the numbers 4 and 5), and I added a third one (the number 6) earlier today.
• That “proper divisor” and “sum of all the proper divisors” aren't explained: but these are explained on the pages (divisor and aliquot sum respectively) linked from the first two sentences of the article, in keeping with the nature of an encyclopedia.
So what is the problem exactly? What explanation/wording would you suggest? It may be easier to understand the general statement “Math wiki pages are so bad”, if there was an answer to “How would you suggest improving it?” for this specific wiki page.
[I have a theory, that this has to do with “depth”: to understand this concept one needs to understand, in order, (1) the idea of divisors, (2) the definition of a proper divisor of N as any divisor of N other than N itself, (3) the idea of the sum of all the proper divisors of N, (4) finally, the idea of an untouchable number, as a number not achievable as such a sum for any N. Each step is individually easy, but because of this ordering requirement, overall there is “depth”. In fact I actually think that any middle-schooler would have no trouble learning the concept from Wikipedia as it stands, if they read the relevant sentences from the relevant Wikipedia articles in order, e.g. the following from https://en.wikipedia.org/wiki/Aliquot_sum seems clear enough for (3):
> For example, the proper divisors of 12 (that is, the positive divisors of 12 that are not equal to 12) are 1, 2, 3, 4, and 6, so the aliquot sum of 12 is 16 i.e. (1 + 2 + 3 + 4 + 6).
It's just that no single page explains all four ideas in order. So the middle-schooler doesn't need to be an experienced mathematician, just experienced at reading Wikipedia and following links. (Arguably this is part of mathematical maturity, i.e. understanding definitions as needed until you can understand the original definition.)
The process you describe: “I eventually figured it out on my own by, yes, examining the two examples they gave and proving to myself how it works” seems to suggest things are working as intended; it's just the nature of mathematical concepts that they require a little bit of thought! As you say, “Any elementary school student who knows about divisors and prime numbers can have it explained to them in about ten minutes.” (I agree, and one doesn't even need prime numbers): about 5–10 minutes is how long it takes, but readers complain about mathematical articles because it's uncomfortable that reading a handful of sentences should require several minutes to understand, when actually this is inevitable. This reminds me of the “monad tutorial fallacy” https://byorgey.wordpress.com/2009/01/12/abstraction-intuiti... — after a bit of struggle to understand, when it eventually clicks, the reader says “ah it's so simple” and thinks that the earlier explanations were bad. But that's just my theory, and if you have a concrete suggestion for how the article could be improved, that may be revealing.]
Yeah, but here's an exception!