> On mathematical perception: “either you have no inkling of an idea or, once you have understood it, this very idea appears so embarrassingly obvious that you feel reluctant to say it aloud; moreover, once your mind switches from the state of darkness to the light, all memory of the dark state is erased and it becomes impossible to conceive the existence of another mind for which the idea appears nonobvious.”
Weierstrass' “When I wrote this, only God and I understood what I was doing. Now, God only knows.”
I don't know if this is perfect, but I've caught myself many times adding more context.
For instance, you might say that the Fourier Transform is just a decomposition of a function of time into complex exponentials representing frequencies. But how does a complex exponential represent frequencies? Can you explain Euler's formula?
I usually pick someone I know well and consider what it would take to make them understand, given what I expect them to know already. I find this really helpful in testing my own understanding, but it's a good way of testing how complex an idea really is, relative to the average person's knowledge. (Incidentally I'd rank Fourier stuffs as pretty complicated, all things considered).
I second this. Evolutionary biology is a complex topic. But all it took for me to understand the basics of it was the Carl Sagan video about the japanese crabs.
https://en.wikipedia.org/wiki/Coastline_paradox
Most maps fairly accurately measure the coastline of a place. Their granularity of topographical measurement is good enough.
In other words, it's not if you understand a concept but how deeply. Also, it's hard to sit down and list all the complexities of concepts. You could be understanding a lot more complexity than you realize.
Beauty is as relative as light and dark. Thus, there exists no beautiful woman, none at all, because you are never certain that a still far more beautiful woman will not appear and completely shame the supposed beauty of the first. - Paul Klee, diary, 1910
(And yet, there is light, dark, and beautiful women..)
> if one were to measure a coastline with infinite or near-infinite resolution, the length of the infinitely short kinks in the coastline would add up to infinity.
No they wouldn't. The sum would converge. What a bad article.
I'm not an expert, but I think it's because as the length scale gets smaller, coastal erosion dominates the coastline, as opposed to an older force producing larger features, like glacial erosion or even plate tectonics. No reason to drag quantum mechanics into this discussion, but the circumference of an atom can be defined, so that's not a problem.
An actual Koch snowflake you can buy will always have a measurable circumference.
E: Some of this misunderstanding is actually due to Mandelbrot himself, he wrote in the introduction to [How long is the Coast of Britain?, 1967]:
> Geographical curves are so involved in their detail that their lengths are often infinite or, rather, undefinable.
No, they're not any more infinite than a toothbrush.
I only studied topology for one year, so i might be very wrong on that one.
But in terms of stuff I struggle to get my mind around, that is the most complicated thing by far I have ever tried to understand. That and the grammar of numbers in Slavic languages.
But everybody has some understanding of some systems that involves humans. Most even have the capacity of predicting a lot of group behaviors. It's just that the understanding is not complete.
I was still in pre-school, watching a documentary about uranium. I asked my mother what uranium was, she replied "a silver metal used for electricity generation". That answer felt deeply unsatisfying, but that's the best answer a todler could get from a village housewife in the year the internet was invented. But I learned that "understanding" doesn't have an objective benchmark; we understand a concept when we subjectively feel confident about our knowledge regarding that concept, no matter how ill deserved the confidence.
I felt like that when I learned about magamps last year... they were hiding in plain sight for my entire life
The most interesting was a magnetic amplifier module, it had 4 windings as inputs, each thus DC isolated from all of the others, AND it worked all the way down to DC... which I didn't expect. The drive frequency was about 10 Khz.
---
In the 1950s, transistors weren't yet reliable enough for computing, so they invented a solid state computer in the 1950s that ran at 1Mhz, had few transistors, and a few big tubes driving the clocking, it used magnetic amplifiers for logic gates.
Is that all? Let us know when you figure it out. I'm joking, but I really like your take on digital privacy and related matters.
Yes, every topic goes infinitely deep, but I personally have much deeper knowledge about the HTTP client implementations than I do about elephant reproduction.
Let me explain, because this is a bit of sarcasm. I realized after years of being a specialist, that deep knowledge can be hired for at a price much less than the cost of achieving it in most cases. Thus, in most cases, specialized knowledge isn't needed - but in the case it is, find and talk to the person who can get you most of the way there.
However, in the spirit of the question, some CS related algo's or quantum mechanics (due to PBS Spacetime). I've learned to be a flexible generalist.
Number of nested connections? That would probably be life its self. So, understanding it from its various mathematical basis through physics and chemistry on up to genetics, game theory, and evolution.
Connections to seemingly unrelated topics? Like human politics? That involves brain chemistry, psychology, history, philosophy, (again) game theory, and ethics.
Complexity resulting in application of said concept? That's just fractals. Nothing more complex.
Then again, depending on your bent you might consider cosmology the ultimate complexity as it literally involves everything.
IMHO it's possible that your friend truly does understand women. It's a testable claim. Make him put his money where his mouth is.
Writing good fiction is seemingly orthogonal to your intention, but I'd put it up there on the list of complex concepts one could know.
Additionally making a movie, the most complex human artistic work, is pretty complex.
Personally I couldn't say I understand any of these as an expert would. But I dabble.
I think measurements are useful when comparing things in an absolute space (eg. rate all cars by engine power). But complexity is relative; something complex to me is simple to you. A topic might be simple to me because I axiomatically accept a premise which you consider a topic of analysis.
No?
IMHO complexity boils down to the number of connections in an objects internal parts. But, like most complex things there's lots of discussion.
Those two different models you proposed to understand music are two different objects hence two different conceptualizations of the same phenomenon, two different perspectives.
So, the old "If all you have is a hammer, every problem looks like a nail." and "There's more than one way to skin a cat." kinda things.
When my main was "too big", i created another function to trim it. I did not get recursive backtracking until i really had to, and then everything lit up for me. I then became a big fan of functionnal programming after that revelation.
Random old school thought. BASIC has an unappreciated feature in that every line of code stands mostly on its own. It's either valid or it's not. In the case of C/C++ that isn't true. A line of codes validity depends on the lines before it.
It has taken me a long time and a lot of work to understand it to the level I have, and I still have a lot more to learn. But it is a fascinating subject and a very elegant way to represent some very complex optimization problems.
There are other cool things like representing a probability distribution over a 3D rotation with an multivariate gaussian vector interpreted as a so3 or se3 vector. Using this you can for implement a very elegant extended kalman filter estimating a 3D rotation. Which usually can be a tricky thing to do.
In robotics we pretty much only use the SO3, SE3 and SIM3 groups so my knowledge is limited to those groups.
A 3 valued so3 lie algebra vector is however always a valid 3D rotation, no matter what the values are. That makes it an ideal parameterization of the optimization problem.
The mapping from so3 lie algebra to SO3 lie group (which could be represented as a rotation matrix or quaternion) is a smooth differentiable function, which allows us to compute the jacobian we need for the gradient in the optimization.
I came here to say I recently took the time to really understand the Lucas Kanade algorithm in depth but I'm going to join the apple pie bandwagon instead.
Oh and De Morgan's theorem.
How? Why? There is no answer and I will soon no longer exist to ask the question, and soon after that nothing will exist that can ask questions, but the fact that, for some brief period, part of the universe became self-aware, information that will eventually be lost forever, is a miracle. And I got to be a part of it. And I got to spend a few years trying and failing to grok how basic principles of physics and chemistry can make this possible.
I'm not sure exactly why it clicks for me so well, but I've found that even among those used to working with equally arcane processes/codebases, taxes still evade their comprehension.
I took a quarter of graduate level quantum in school and optimization problems involve much more voodoo.
In a practical sense managing an organisation with a sizable amount of people in it due to the sheer amount of diverse issues you have to deal with, and the way in which you can't really reduce it to any kind of formula and where you find new problems every day. Everything that involves organising people is very complex. I was originally thinking about writing "organising WoW classic raids" as a joke but it might actually be true as well.
I'm not sure how complex that really is but it seemed difficult to wrap it all up in my mind at the time.
More interesting:
A complex concept that I don't understand is the relationship between water pressure and water flow rates and how they affect one another. I've had people explain it to me and I'm not even sure they understand it.
One thing people might get confused by is why making the opening at the end of the pipe smaller makes the water go faster. What you do in electricity terms is add a series resistor, the total flow rate in the pipe will be lower, but the speed can be higher because it needs to go through smaller opening and so is more concentrated.
I'm really good at devouring a new subject area to find the boundaries of what there is to know, even as I don't understand it. Sometimes, terms or phrases will stick in my mind and at a later opportune moment become clear that it's what I need to use. Programming languages and ORMs are curious in how we seem to keep on using not such good ones.
I like to draw analogies from disparate subjects and apply some aspect of it to solve a problem. I often wondered if anyone is ever purely creative, and thought hard about a time when I had a truly original thought. I finally remembered that time in grade 7 math when I thought that Pi was dumb and that 2 Pi was more fundamental. My reasoning was (1) radius is more fundamental than diameter, (2) arc length of a circle. This was of course back in the late 70s before I'd ever heard of Tau.
I'm an expert in the Blub language and looking both ways from that vantage point.
I recall hearing in another context the distinction between a complicated Swiss watch versus a cockroach, which would be described as complex.
Through that lens your question is undermined.
But I take your point. I would say there are a lot of complex ideas I understand from philosophy; however, the very language you use contains critical distinctions. The terms and their construction are not plastic, or forgiving, so an extemporaneous explanation for a lay audience frequently fails.
A complicated idea which I understand with a more stable basis is accounting’s debit-credit model. Then again, teaching this versus explaining it to someone is different depending on your num3rical literacy. How much time do you have?
You can perhaps get better results by mimicking https://www.wired.com/video/series/5-levels – explain the concept at different levels of expertise. You might change your mind about that a concept you think you could not explain.
I've learned all of it for a hobby project of mine and I still have a lot more to learn, but I find studying and deciphering it to be strangely relaxing. It's weird.
You can't have, for example, a mic capable of recording both a whisper and a rocket launch. You need to optimize for some function.
And I am sure I only have scratched the surface of this niche already.
Numerical algorithms can be both amazingly intricate and omnipresent at the same time. Optimization is a beautiful field because of it.
But objectively, that might be something that thousands of other people class as complex, very complex or even extremely complex..
To try though : recursion, induction & generalization, entailment, parse trees.
One thing I don't understand is relativity, but someone once told me that you could summarize it by saying "force acts at a distance over time".
I have repaired HP 6051b Cesium beam frequency standards, and can explain how they work, to laymen.
I don't believe there is anything I can't understand. I believe there are two ways of thinking, mapping, and packing... I believe that mappers can learn ANYTHING, if they are sufficiently motivated and resourced.
Computers on the other hand, are the ultimate packers... as long as you can give them a sufficiently constraining set of instructions that accounts for most small deviations, they can do almost anything.
I've implemented a purely functional programming language that macro expanded in lambda calculus and was transformed into various set of combinators for evaluation.
So I know you can express the Y-combinator in terms of S and K to implement recursion and I've literally watched the resulting expressions resolve but do I really do not understand conceptually how you can implement recursion in terms of two ridiculously simple functions.
Treating these dimensions as orthogonal resolves much tension.
For example, modern politics is soulless, and has ceased to be an intellectual exchange. It simply boils down to treating other peoples' bodies like livestock.
Not flaming any countries, parties, or individuals here; merely being descriptive.
I thought about this question and thought, Rust lifetimes or Rust coherence rules, but then again I thought maybe I don't really understand them.
Perhaps it is more helpful to ask: what is the most complex concept you can explain the basics?
But the idea of γ (gamma) is dirt simple, it's just simple Algebra.
I noticed after I graduated there was a period of time when I would have to concentrate for ten minutes and the epiphany would return.
Now, several years later, I’ve entirely lost it.
a lot of actual researchers spend entire lifetimes to model complex stuff at the lower level possible when a good model tuned on real data will generally give better predictions.
relevant quote : "all models are wrong, some are useful"
Optics specifically.
Well, maybe I understand it. I'm pretty good with photons in the near-visible range. Muller matrices, point spread functions, the wave-particle duality, fluorescence, what have you.
Though gamma rays and AM radio still confuse me.
Ok, I guess I'm still learning then...
So the meaning of life depends on why God takes actions, and we will never understand that.
I don't think it is very complex concept.
- I believe in a designer obviously. I totally understand if you didn't.
Causality is a concept that exists within a universe, because it's bound to time, which also a concept that exists within a universe. The physical law of causality (which can be expressed as both "events of the present are fully defined by system states at previous times" and the time-reversed equivalent, that the past states are fully defined by the future) are only coherent concepts within the framework of specific physical laws that govern this universe. Not every set of possible physical laws gives rise to causality, or even time.
In Conway's Game of Life, the future state of the board is also fully determined by the past, although there is no time reversal symmetry.
Judea Pearl's causality is similarly bound to applying within the context of a timeline and universal law.
Again in Conway's Game of Life, you can implement Turing machines and run simulations of any scenario. Hypothetically you could have artificial life in such a simulation, which might conduct experiments to learn the physical laws of the cellular automaton that governs their world.
But those laws, their perception of cause and effect, only exist within the context of that simulation, and within their simulated timeline. Their "time" is a state variable of the simulation.
No experiment conducted by creatures within the Game of Life could determine why their simulation is running in the first place, or why its initial conditions were chosen the way they were. The computer running their simulation is outside the laws of their universe. To ask "what was the value of Conway.simTimeIndex before the Game was started?" doesn't make sense. The laws that govern the commencement of Games cannot be perceived from inside the Game.
On our own level, the notion of cause and effect is a concept that is coherent within our universe and its concept of time. To ask whether our universe had a cause, or was preceded by something, doesn't make sense. It might or it might not have; that depends on the laws that govern the commencement of Universes, which we cannot measure from observations inside of our universe. If there is any law of meta-causality or time, on the level of reality at which universes are created, we will not identify it via measurements conducted within this universe.
It's a philosophy I've assembled myself from many sources, so there's no one book about it, but definitely a lot of sources of inspiration.
My understanding of the nature of time comes mainly from Julian Barbour's book "the End of Time", which itself is not an easy read and took me a long time to digest. Although, the philosophy is compatible with more conventional theories of time, as long as it postulates time as a structure that is somehow internal to a universe.
There's endless literature about Conway's Game of Life and cellular automata, although since it's used just as a metaphor here, it's enough to just play with the game itself for a while. Greg Egan's "Permutation City", while fiction, is an interesting exploration of the concept of the boundary between a simulated universe and the reality that contains it.
For more about how causality in our universe arises as a consequence of specific properties of nature, I'm not sure exactly what to recommend but maybe Feynman's lectures on physics are a good place to start.
For other perspectives on causality, Judea Pearl's "Causality" is a classic. But heavy.
But I am curious about something, do you believe that this life is deterministic?
I'll try to make it simpler...
We believe things must have causes because, inside our universe, all things are caused by other things at earlier times. That's because our laws of nature are causal, and our universe has a timeline.
But the laws of nature inside our universe might not be the same laws of nature that govern the creation of universes.
Just like the laws of physics inside a video game aren't the same as our laws, and won't say anything about why the video game started in the first place.
I do believe that this life is deterministic, but also that the future is not knowable.
So all that we're left with is philosophy, religion, and Ockham's razor to figure out what we'll believe. My advice would be to maintain an open mind and a sense of uncertainty.
In one job had a similar case of less memory than output area with a laser printer engine. It had a short memory buffer where the laser would wrap around many times while printing a page. The trick was to split up all the input commands into output object slices that were short enough to fit into a band of the buffer, order them, and paint them just-in-time, wrapping around the bottom of the short buffer to the top. The lower-end HP LaserJets had a similar implementation that would get the dreaded 'print overrun' error.
tl;dr - literally all of you are doing it wrong.
(Insert FP fanboy platitude about how objects are a poor man's closures, or something along those lines)
One of the biggest issues with OOP I think is the lack of a unified understanding. I think there's value in trying to define a "right" way, if only so that when we are talking about OOP, we are talking about the same thing.
I think that definition would require a volume of text, so I'm not prepared to fully elaborate, but ultimately I think that the core issues lie in our approach. We tend to think like computers when programming, which leads to OOP being a morass of procedural code masquerading as objects. Effectively, we tend toward functional decomposition. Code is boxed up into related data and behavior, and we call these "objects". What we really should be doing is approaching object design as a function of behavioral affordances.
Object design then becomes a necessary, often overlooked, step.
Object design is the first hurdle. The second is in the actual implementation, wherein we traditionally treat our objects as "data" and "behavior upon that data". I can't tell you how many times I've cringed at seeing "Thing" and "ThingManager" in code.
OOP might not be a good thing. It definitely isn't a good thing when it is done poorly. Exposing an object's data, for instance, makes the entire paradigm worthless. The widespread acceptance of `public` data members completely ruins the usefulness of OOP.
That brings up implementation languages. Programming languages really want you to use them, and they make it easy to eschew good OOP principles in favor of ease of use. Accessibility features and syntactic sugar lead not only lead us away from the paradigm, but also confuse about what it actually is.
OOP's biggest strength, and one that most of the literature doesn't go into, is it's ability to lighten cognitive load. When an object works independently of its environment, it is easy to both learn and understand that object. But we sacrifice a huge chunk of this strength in the name of "getting the work done".
I believe that good OOP resembles FP in implementation. Not completely, but much more closely than the procedural landmines we're used to would have us believe. OOP just provides a lower barrier to entry in that it lends itself well to the usage of basic programming constructs and it more closely resembles how humans think, though that could also be argued.
It is a nightmare if you ever use the word "factory"
This also applies to really anything with the "-er" suffix, which lead us to treat objects as "data" and "things that act upon that data".
This often shows up in code as "Thing" and "ThingManager", or something similar.
"Red" may bring to mind the color. It may bring to mind anger. It may bring to mind a bull and a matador.
All of those things happen in your subconscious, and they affect your understanding in uniquely-local ways.
So the transfer of information through speech from my mind to yours may sound very direct, but your interpretation of what I am saying is different than my interpretation of what I'm saying in very subtle ways.
Because of this, there's a very good chance that I am either completely wrong because I have misinterpreted things, that I am wrong because you have different context than I do, or that I have done a poor job of explaining things because context exists locally (in my head) that you don't have.
About this topic in particular, it was hyperbole to say "you are all doing it wrong". What is more accurate to say is that "my understanding of OOP is different in implementation than what I'm used to seeing, and I believe that my understanding is more correct/beneficial than those implementations"
I agree, though, that mutability is detrimental, and that traditional OOP can easily lead us to believe that state is not a concern.
I do not believe that this is a problem inherent to OOP, rather it's a problem of paradigmatic implementation.
There uncountably infinite potential concepts in abstract subjects because an additional layer, reduction, parameterization, or generalization can be made.
Some answers might include, but aren't impressive:
- General relativity.
- Quantum computation.
- Derivation of time-dependent Schrödinger equations.
- Tensor calculus.
- Dependent typing.
- Monads.
- Ambiguity. (in general)
- Women. (literal)
A general genius would be able to list things almost no one has ever heard of and fewer could understand without additional time and explanation.