Kill Math - <AUTHOR> http://worrydream.com/#!/KillMath <comment><USER2> Something that I think is important in math is the practical and theoretical going hand-in-hand. I'm still an undergrad student, but I have really enjoyed my math education so far. I have always appreciated both the beauty of the abstraction of math, as well as the beauty of applying that abstraction to solve very real problems.

That being said, I think something might be lost when you take away the abstraction of math. I think a lot of math -and math abstraction especially- is difficult because of the way variables are understood. Since the beginning of algebra one, we learn that we can have an unknown, say 'x', and we can solve for it trivially by manipulating an equation to set 'x' equal to some value. But people always seem to get caught up in the naming idea. I remember in high school math classes, many of my peers would get so hung up as soon as the 'x' was turned into a 'y'. I felt like it was hopeless trying to explain that 'x' and 'y' are just names for something.

This same problem percolates into every bit of math. After enough time, functions in math become first class citizens as well. That throws even more people. The exact same problem is seen in the programming world when people move from functions as an idea of a subroutine to being treated like a first class citizen. And lets not even mention Haskell or another functional language, with currying and stuff like that.

I guess that's the problem that I see in math; the idea of an abstraction is difficult. However, I'm not totally convinced that making complex math more concrete is the best way to do that. At some point, having linked numbers like in interface builder looses its usefulness. So much of math is proofs. How can you do proofs when you are constantly instantiating concepts, rather than dealing with an abstraction. At some point, "there exists" needs to become "for all," which I think might be difficult in this type of mathematical environment.

Again, concrete and abstraction really go best hand-in-hand, in my opinion.

</comment><comment><USER3> This article isn't necessarily about making ALL math less abstract / challenging. That's arguably impossible. It's about making math more accessible to the masses.

Most college educated Americans have never learned ANYTHING about differential equations, linear algebra, or discrete math... That is a serious shame and you could argue impacts our national productivity/potential. Most people simply will not try to learn higher level math out of fear of failure, challenge, or whatever.

Making SOME higher level math more intuitive is a great objective. I would much rather live in a world where more Americans ultimately understand a higher level of math (regardless if the path to get there was a little less challenging) than leaving math education in it's current state.

Analogy: How many average American's tried to use computers with just command prompts? I would argue that it was the creation of an intuitive interface ("physical" folders where you store documents) that really started mass adoption of computers throughout the world. Is this less challenging/abstract than command prompts- yes. Is the world vastly more productive because of it? Absolutely.

</comment><comment><USER4> I'm not sure how I feel about this. Sometimes complicated things are just complicated. I'm not sure making pretty pictures to make things appear more simple than they are is necessarily a good thing. Abstract thinking is difficult. Breaking the problems down such that it no longer requires abstract thought somewhat defeats the purpose.

<comment><USER5> Don't delude yourself with this Protestant hard-work-is-necessary mentality. Better representations are possible and they can save us a lot of work. It's easier to perform multiplication using Hindu-Arab numerals than it is with Roman numerals. It's easier to program with Python than Assembly. Difficulty is a property of the representation, not of some underlying 'abstract thing' that is being represented.

<comment><USER4> That's not my meaning.

Higher level math requires abstract thinking. Abstract thinking is hard. If you can learn to think abstractly then it will allow (or help) you solve a large class of abstract problems. If math is broken down such that it does not require abstract thinking and a person does not learn to think abstractly then they will not be able to solve that large class of abstract problems.

Or so my line of likely incorrect train of thought goes.

<comment><USER6> Or maybe interactive visualizations can help people learn to think abstractly, by showing how one level of abstraction relates to another?

<http://worrydream.com/#!/LadderOfAbstraction>

</comment></comment></comment></comment><comment><USER7> Two things:

1\. Needless complexity 2\. Needed complexity

1.: Think how programming in assembler requires you to mentally keep track of registers, and how higher level programming languages did away with that by enabling variable names. The resulting program is still mostly the same thing underneath. You can get the same logical results but the former is much harder.

There is a question here though: why is it easier for most humans to program in C rather than in assembler? Sure, there's more housekeeping in assembler. But I think it's mostly because there's one less layer of representation. a=5; b=10; c=a+b; Vs "load 5 into register A1", "load 10 into register A2", "calculate sum from registers A1 and A2 and store it to register A3".

So here in "less layered math", instead of saying: Let alpha represent the angle, a the closer cathete and b the further cathete and c the hypotenuse, then sin(alpha) = b/c You instead say: sin is the relation of the further cathete to the hypotenuse.

Again, a large portion of people can get the former way of explaining sin, perhaps when they see it all at once on the blackboard or book and go back and forth... (what was b again?) but the latter way of explaining does away with the whole exercise of variables. (Note that I picked a subject of convention, not something that can be deduced from more basic principles, I think those again can be taught somewhat differently.)

The problem is, many math teacher love variables and think how beautiful all that symphony of x:s and y:s is. But for the average school student math is just one subject among others. They just want the essentials with the least amount of extra crap and layers on top.

Lots of caveats here. I think people need to learn basic algebra, but it makes me sad that so few people can't use it for problems they are trying to solve. I think these would make interesting psychology research subjects. It's a very important field.

2.: Yet you can't go beyond some point in simplification.

<comment><USER8> Have you seen this Bret's talk about his principle <http://vimeo.com/36579366> ? It's not really about simplification of things.

The principle is basically "to see what's going on", or "to have immediate connection with what you are doing". Basically when you design something, you have to try to think or simulate in your head what's going on. Bret wants to remove that barrier so you don't have to think.

There's some great examples in the video where the principle is applied to graphics, game design, electronics, programming etc.

</comment></comment><comment><USER9> I am hopeless at math. This is something that I am ashamed of. But there are people who seem to be proud of their ignorance; they're shocked if you haven't read any Shakespeare but happily admit they can't do percentages.

Will those people be helped by the author's approach? I don't know, but I don't think so. These people will see a number and throw their hands up, saying "Oh maths! I can't do sudoku, how do you expect me to do this!". This attitude is not quite as prevalent in the UK as it used to be, but it's still there. See, for example, the number of esoteric arts programmes on BBC compared to the number of advanced science programmes. (I'm not aware of any science programming that would be beyond an enthusiastic 14 year old. I do know of hours of arts programming that is unashamedly elitist. Elitist is fine, but it'd be great for some balance.)

What is needed is better maths education. (I finished school many years ago; maybe things are different now.) Math is not blindly mashing numbers and symbols and hoping for the best. Maths includes a large element of careful thinking, exploring the problem, listing the known information, listing what you want to find.

New techniques for using math would help reduce the gender inequality in math results too.

Put the normal "more research needed" caveats around this, but: There's some suggestion that girls use inefficient techniques and "just struggle through", they manage to get correct results and so they don't get extra help. Boys tend to just stop when it gets too laborious, and thus they get taught new better techniques.

(<http://news.bbc.co.uk/1/hi/education/4587466.stm>)

</comment><comment><USER10> This is an interesting idea, and I think his final analogy summed it up perfectly: symbolic math _is_ like a command line. But I reject his assumption that a command line is a bad interface. And that mirrors my thoughts on this post: for the layperson, a GUI may indeed be better than a command line; for a professional (a programmer) the reverse is true.

A command line lets you combine and recombine different programs and easily do many things its creators never dreamed of. Symbolic manipulation and algebra are just like that!

Let's imagine you know how to differentiate viscerally; you understand what a tangent line looks like and how to plot that and you care not for silly equations like d/dx x^3 = 3x^2. Naturally, you understand basic arithmetic in the same way and not as mechanical manipulations on symbols. You are perfectly well equipped to deal with real problems, and perhaps find it easier than shuffling symbols around. But you would never come up with a way to get the derivative of, say, an algebraic data type[1][2]. (For the curious, this is how you can define a zipper on a type.)

[1]: <http://blog.lab49.com/archives/3011> [2]: <http://strictlypositive.org/diff.pdf>

And that's the problem really: mechanical manipulation of symbols lets you divorce the mathematical idea from the underlying "reality". It lets you generalize patterns with complete disregard for what they mean. And, somehow, this produces indubitably useful, nontrivial results. That's the real magic of math, and that's the magic that you don't get in your high school courses. (I think linear algebra is the first subject like this, but I'm just learning it now.)

<comment><USER2> Also, I think a point that could be made that if you were to teach a 'layperson' how to use a command line, given they were willing to learn it -and not pull the "I'm too dumb, this is for you computer people" card- I think they would quickly discover that there are few things they do daily that they could do quicker.

<comment><USER11> The problem is that our education systems, by and large, include effectively no education about computers whatsoever. (Classes with touch-typing lessons/word-processing skills/etc. don't count in my mind.)

As a result, most people have no concept of how a computer really works. With just the tiniest bit of this knowledge, the command-line would seem much less arcane, and the 'I'm too dumb, this is for you computer people' argument wouldn't really apply.

It's shocking how computing is quite literally the technological advance of the millennium, both for industry and for individuals, and yet we somehow think it's acceptable to leave it up to people to learn about it all on their own, and even then only if they care to.

<comment><USER2> yes. Also, people are so thrown by complexity, that they assume they aren't capable of taking steps toward figuring something out. a CLI really is NOT that hard. They all follow a very simple pattern:

[command] [parameters]

$ ls

just a one word command. shows you directory contents. easy. not complicated looking. Lets make it harder.

$ ls -a

an option. list contents of directory. but ALL of them. still easy.

building from the ground up is easy. For some reason, people still are scared off. Why? Why are people afraid to learn?

<comment><USER12> It's easy to sight of just how much things you must know just to use the command line. When I read you comment I wondered what other options were available, so I tried...

$ls -h

This is what I've seen with most command line tools, but it doesn't work. So then I tried...

$ls --help

The output is

> ls: illegal option -- - > usage: ls [-ABCFGHLOPRSTUWabcdefghiklmnopqrstuwx1] > [file ...]

What? I had to google it. Ok so...

$man ls

Oh, cool, a list of the options, finaly. Now, let's see what ls -a does:

> -a Include directory entries whose names begin with a dot (.).

If I were looking for invisible files I'd have absolutely no idea this is the option I need to use.

Now, I completely understand that the power of the command line relies on its consistency, I'm confident that—at some point—I'm going to be able to grasp it's elegance. But, for now, I feel like a foreigner in a new country who just knows a few phrases and struggles greatly to understand what is being said to me. Saying that the command line is easy is like saying that English is easy.

<comment><USER13> But that's only if you try to learn by prodding and poking it. When I started learning English, I didn't begin by reading the definitions of a word in a dictionary. I read manuals that explained the basics in a way that didn't assume prior knowledge.

In the same way, searching for "how can I learn to use the command line" gives you a bunch of guides - of varying quality, of course - that explain the basic commands in a clearer way.

</comment></comment></comment></comment></comment></comment><comment><AUTHOR> FTA: "By comparison, consider literacy. The ability to receive thoughts from a person who is not at the same place or time is a similarly great power. The dramatic social consequences of the rise of literacy are well known."

I'm thinking it might be a bit on the difficult side to express the relationships written equations make easy if all you've got is an animated graph full of dials or a "scrubbing calculator".

Written math is wonderfully dense and meaningful and allows the transmission of a very particular kind of knowledge with the simplest of mediums.

<comment><USER14> That's a good point. Sort of like when I first discovered regular expressions, I thought "Wow, I can express a whole sentence worth of very specific commands in a few characters." The same goes for Math. I don't really like Math, but I certainly won't deny its power and ability to be expressed in such a compact form.

</comment></comment><comment><USER15> I'm worried that in presenting math with visible, tangible intuition dominant will do more to silo the knowledge inside the ivory tower.

N-variable calculus isn't something that you can draw a picture of. Lots of (very practical) Linear Algebra is derived from the pure "Linear Transformation" interpretation rather than the "Matrix" one. Stochastic...anything (seems to be all the rage these days) is not made with helpful pictures.

If we train people to do math in a non-abstract way, they won't be as easily able to grapple with the _real_ problems, which are only approachable in the abstract.

<comment><USER16> I disagree, at least that pictures can't help with higher dimensional math. Well, regular pictures may not help so much but interaction really can. A lot of my understanding of higher level math depends on my programming ability to "touch" some of the abstract concepts.

When learning something new you need to be able to associate the new concept with things you already understand, and visuals can give you an intuitive sense of how things are behaving (especially in time)

I don't think the visuals could necessarily take the place of training to use the abstract symbols or lines of code any time soon, but I think they are a really necessary step in the right direction to get more people to approach math.

</comment></comment><comment><USER17> One question: How were those demonstrations programmed? I have a feeling they were developed by "manipulating abstract symbols."

Math doesn't need a new interface, any more than a POSIX compliant shell does. Math is a beautiful and expressive language. Its strength is in communicating difficult, abstract concepts in a language that is manipulable. This manipulation is of the utmost importance in understanding the relationships between different concepts and even in developing new ones. Removing the single strongest aspect --the "abstract symbols"-- of mathematics is to neuter it.

<comment><USER18> I think part of his goal is to help people that do not yet understand the abstraction have a way to manipulate a system involving it.

Then play can lead to understanding, in a way that is unlikely for 2x+1=5.

</comment></comment><comment><USER19> The idea of "geometrization" of mathematical education as opposed to "algebraization" has been discussed widely in the recent decade at least, maybe more. In Russian school of mathematics, Vladimir Arnold (<http://en.wikipedia.org/wiki/Vladimir_Arnold>), was a very strong proponent of the idea. You can read his talk of the subject here <http://pauli.uni- muenster.de/~munsteg/arnold.html> .

</comment><comment><USER20> I get the sense that there's two levels of understanding for most mathematics: a superficial level where you just have to manipulate symbols and be comfortable applying rules, and a deeper level where you grasp the underlying relationships and some fundamental 'why' of the problem. I used to think that if you were bad at the first, then the second would be an even tougher challenge. But I'm starting to suspect that actually people who are good at the first often just don't care about the second. And in fact it might be the very need for things to 'make sense' to you on a deeper level that is causing discomfort and difficulty at the superficial level. Some people lack curiosity about the deeper relationships, and perversely this might actually help them get along at the superficial level.

For instance in finance, why is Macaulay duration(1) approximately equal to effective duration? One measures time in years, the other measures sensitivity in percentage form. How the heck do they come out at the same number approximately? For some reason i can't find any literature that's in a rush to explain this relationship... even though the two measures share the name 'duration' so presumably there's some intuitive understanding to be reached.

(1) when the yield is expressed continuously compounding, at least

</comment><comment><USER21> I had some initial thoughts when I first saw this, I don't think they've changed much since. It'll be interesting to see where it ends up, for sure. I wrote again about this page after reading the somewhat recent Dijkstra lecture about the radical novelty that is programming (and other topics). Here's a slightly modified copy/paste, I'll warn that it kind of wanders after "Things Other People Have Said" so you're invited to stop reading at that point.

While I sympathize with the opening, because many neat things have been made/discovered without the person having any formal math knowledge like what the "U"-looking symbol in an equation stands for:

>"The power to understand and predict the quantities of the world should not be restricted to those with a freakish knack for manipulating abstract symbols."

I heavily disagree with the conclusion:

>"They are unusable in the same way that the UNIX command line is unusable for the vast majority of people. There have been many proposals for how the general public can make more powerful use of computers, but nobody is suggesting we should teach everyone to use the command line. The good proposals are the opposite of that -- design better interfaces, more accessible applications, higher-level abstractions. Represent things visually and tangibly.

>And so it should be with math. Mathematics, as currently practiced, is a command line. We need a better interface."

I think the notion that they're unusable by the vast majority of people because of something fundamental about people is false. At some point in time reading and writing were not done by the vast majority of people, then they came into existence. Even as recent as 500 years ago, the vast majority of the population neither read nor wrote. Along came public education and that proportion flip flopped insanely fast such that the vast majority are capable of reading and writing (regardless of how good they are at it). Reading and writing were just as radical novelties as computing, just because something is a radical novelty doesn't mean most humans can't be proficient at it eventually.

I think we should teach everyone to use the command line. Well, not Windows' CMD.EXE, but bash preferably in a gnome-terminal. Here is a short quote expressing why I think this is a good idea:

>Linux supports the notion of a command line or a shell for the same reason that only children read books with only pictures in them. Language, be it English or something else, is the only tool flexible enough to accomplish a sufficiently broad range of tasks. \-- Bill Garrett

I think we should teach everyone how to interact with the computer at the most general way--which means programming. Which means commanding the computer. Describing the inverse square law in terms of pictures and intuition isn't going to make it any more of a tool than some other method, people are still going to think of it as something one is taught. The only way to make it seem like a tool is to use it as a tool, this means programming for some purpose. Maybe a physics simulation. And the beauty of tools is why the software world has exploded with utility despite Dijkstra's depression at programmers' inability to program extremely well. The beauty of tools is that they can be used without understanding the tool, just what the tool is useful for.

The "Things Other People Have Said" at the end is more interesting than the essay.

I wonder what Dijkstra would think of it. My two best guesses are "This is just a continuation of infantizing everything" and "We did kill math, with programming." I think a lot of people's difficulties with symbolic manipulation are due to the symbols not having immediately interpreted meaning. Dijkstra seems to recommend fixing this by drilling symbol manipulation of the predicate calculus with uninterpreted symbols like "black" and "white". My own approach I have been using more and more is to just use longer variable names in my math, whether written or typed. It really seems like this simple step can be a tremendous aid in understanding what's going on.

Over the past couple of years I've realized just how important sheer memorization can be as I see almost everyone around me struggle with basic calculus facts, which means they struggle with application of the facts. The latest example from a few weeks ago in a junior level stats course with calc 2 prerequisite (which many people take 2 or 3 times here apparently) was when apparently no one but me recognized (or bothered to speak up after 20 seconds) that (1+1/x)^x limited to infinity is the definition of e, which we then immediately used with (1 - const/x)^x = e^(-const). (Which is immediately related to the continual compound interest formula that changes (1+r/n)^nt to e^rt as n->infty which everyone should have seen multiple times in algebra 2 / pre calc when learning about logarithms! The two most common examples are money and radioactive decay.)

Sure that's a memorized fact for me, it's not necessarily intuitive apart from the 1/x being related to logs which are related to e, but come on. In my calc 3 course that I didn't get to waive out of, where it was just me and two others, I was the only one who passed, and when the teacher would try to make the class more interactive by asking us to complete-the-step instead of just a pure lecture the other two were seemingly incapable at remembering even the most basic derivative/integral pairs like D[sin(x)]=cos(x). A lot of 'education' is students cramming for and regurgitating on a test where the teacher hopes (often in vain) that the cramming resulted in long-term memorization. I do this too, cram and forget, but maybe I just do it less frequently or for less important subjects or my brain's wired to memorize things more easily than average (but I disfavor hypotheses that suppose unexplained gaps in human ability as largely static). My high school teacher's pre-calc and calc courses had frequent pure memorization tests such that there wasn't a need to cram elsewhere because that iterative cramming was enough to get long-term memorization (with cache warmups every so often; I did have to breeze through a calculus book in preparation for a waiver exam last year).

A person can only hold so many things in their active, conscious memory at once (some people think it's only 7 plus or minus 3 but that seems like too weird a definition of 'thing' that results in so little; human brains are not CPUs with only registers r0 to r6), so when you start looking at a math proof with x's and y's and r's and greek letters and other uninterpreted single- character symbols all over the place, it's incredibly easy to get lost. If you start in the middle, if your brain hasn't memorized that "x means this, y means this" for any value of "this", you have to do a conscious lookup and dereference the symbol to some meaning even if the actual math itself is clear. My control systems book uses C and R for output/input (I already forgot which is which) but it's so embedded in my brain that Y is typically output and X is input that I use those instead, as does the teacher. I agree with Dijkstra that practice at manipulating uninterpreted symbols makes it a bit easier, but there are quickly diminishing returns and ever since I started programming and saw how PHP uses the $var syntax to denote variables I've been thinking "Why hasn't this caught on in math? It makes so many things much clearer!" But it's not so much the "$" in $var (or @var and other sigils in Perl) but the "var". Saving your brain a dereference step is pretty useful.

Single-character symbols (and multiple character symbols) that not only hide tons of meaning through a dereference, which is naturally how language works, that also suggest a meaning themselves, are stupid and promote natural diseased human thinking. My poster-child here is global warming. Every winter you'll hear the same comments on "When's global warming going to hit here?" The poor choice of global warming as a variable that points to a bigger theory has cost it heavily in PR because humans look at only the phrase instead of what it points to, it's still so bad that people's every day experiences, which they use to form a subconscious prior probability in global warming as a theory, contain "it's really hot all the time and everywhere I've been!" and so they look at "global warming" and dismiss any evidence for/against it based purely on the name and how their experience seems to contradict the name. It's like a computer thinking that a pointer address that happens to correspond to 0xADD means it should invoke addition when it should figure out what 0xADD points to instead which could be anything.

Another use of long names is with Bayes' Theorem in probability. It is only through memorization of the uninterpreted symbols A,B,C themselves that I remember prob(A | B, C) = prob(A | C) * prob(B | A, C) / prob(B | C) But it never made intuitive sense to me and I never bothered memorizing until it was expressed as prob(hypothesis | data, bg_info) = prob(hypothesis | bg_info) * prob(data | hypothesis, bg_info) / prob(data | bg_info). (Sometimes data is replaced by model.) The notion that it relates reason with reality, that it encapsulates the process of learning and scientific reasoning, elevates the equation to the status of a tool instead of something you cram for and regurgitate on a test. An immediately useful application for the tool is using Naive Bayes to filter spam.

<comment><USER22> > _(1+1/x)^x limited to infinity is the definition of e_

This shouldn't be "memorized" as a "fact" though. As you point out, it's the very definition of _e_. Which is to say, to really understand what the exponential function means implies building up a mental model about lim [ _n_ →∞] (1 + _x_ / _n_ )^ _n_ and its behavior, interacting with it, connecting it to other functions, seeing what happens when you combine it with other ideas: trying to integrate/differentiate it; noticing how it reacts to fourier transform; relating it to rotations, areas, imaginary numbers; writing it as a taylor expansion or continued fraction, or with a functional equation, or as the solution to a differential equation. Connecting it to derived functions such as e.g. the normal distribution, or sine, or hyperbolic sine. Generalizing it to an operation on complex numbers, or quaternions, or matrices. Thinking about what exponentiation in general really means. Coming up with algorithms for computing _e_ 's decimal expansion or proving that _e_ is irrational and transcendental. Solving problems with it, like to start with, continuously compounded interest (&c. &c. &c.).

No one who had really _learned_ about exponentials in a deep way would easily forget that this is the definition of _e_ , and that has nothing to do with lists of facts or rote memorization.

> _Single-character symbols (and multiple character symbols) that not only > hide tons of meaning through a dereference, which is naturally how language > works, that also suggest a meaning themselves, are stupid and promote > natural diseased human thinking._

I think you should try writing out some very difficult complex math proofs before you make this assertion (say, for instance, a proof . Things are bad enough when we pack ideas down. Start expanding them in the middle of the computation, and it the steps become almost impossible to see or reason about.

The whole point of assigning things short simple names is that it gives a clear analogy (to past experience w/ the conventions) that provide a shortcut to anticipating how particular types of structures and operations behave. Cramming a matrix or a multivariate function or an operator down into a single symbol helps us to treat that symbol as a black box for the purpose of the proof or problem, which helps us bring our existing mathematical tools and understandings to bear. Sometimes, we run afoul of false impressions, as when we apply intuition about the real numbers to matrices in ways that don't quite apply, or intuition about metric spaces to general topological spaces, &c. But this is I think an unavoidable cost, and it's why we strive to be careful and precise in making mathematical arguments.

<comment><USER23> Single symbols are ok, but why do they have to be denoted by a single letter? There's a reason why using single-letter (or two, or three-letter) variables is discouraged in programming in favour of longer, descriptive names. It's to avoid the moments in which you start wondering, in the middle of reading a function, 'why q has to be greater than k-1? And what the hell is this Q(p) anyway?'. I really don't understand why both math and physics are so into one- character symbols. Even the OP's Bayes theorem example shows that it's easier to read a formula, when the symbol names self-evaluate to their meaning.

<comment><USER24> A lot of the time when doing math, you literally _don't want to know_ what a particular symbol stands for - you just want to manipulate the symbols abstractly. Too much interpretation can interfere with the process of pattern recognition that is essential for doing mathematics well. You also see this in programming whenever someone writes

        public interface List<T> { ... }

in Java, or when you write

        Tree a = Empty | Branch a (Tree a) (Tree a)

in Haskell. It _doesn't matter_ what 'T' and 'a' are, so we use short, one- character representations for them. The fact that you can write Bayes rule as _P(A|B) = P(A)P(B|A)/P(B)_ (where I've even used a zero-character representation for the background information!) expresses the fact that _A_ and _B_ can be arbitrary events, and don't need to have any connection to hypotheses, models or data. It just happens one of the _applications_ of Bayes rule is in fitting scientific hypotheses to data.

This question at math.stackexchange.com goes into a little more detail: [http://math.stackexchange.com/questions/24241/why-do- mathema...](http://math.stackexchange.com/questions/24241/why-do- mathematicians-use-single-letter-variables)

<comment><USER6> Even in your example, multi-character names are used for Branch, Empty, Tree, and List. And those are much more helpful than single-character names would be.

Plus, the math tradition of one-character variable names means that they've had to adopt several different alphabets just to get enough identifier uniqueness (greek, hebrew, etc., plus specialized symbols like the real, natural, and integer number set symbols). Which makes all that stuff a pain to type. And even then, there are still identifier collisions where different sub-disciplines have different conventions for the meaning of a particular character.

It's also annoying because single-character names are impossible to google for.

<comment><USER24> We would use multi-character names for Branch, Empty and Tree because it matters what those things represent. It would be thoroughly confusing if we instead wrote

        t a = e | b a (t a) (t a)

However, we don't care what the 'a' represents. It's just a placeholder for an arbitrary piece of information. If we had to write

        Tree someData = Empty | Branch someData (Tree someData) (Tree someData)

then we have just introduced a lot of unnecessary line noise.

One difference between programming and mathematics is that programming is mostly interpreted _in context_ , when it matters that this double represents elapsed time, and this double represents dollars in my checking account. Mathematics, on the other hand, is mostly interpreted _out of context_. I don't care what _a_ represents, all I care about is that it enjoys the relationship _ab = ba_ with some other arbitrary object _b_.

If the mantra of programming is "names are important" then the mantra of mathematics might be "names _aren't_ important".

<comment><USER6> Sure, your original example with single-letter type variables makes sense to me, since those variables could represent anything. I never meant to object to those. I just wanted to point out the fact that your example _also_ included multi-letter names, while mathematics generally does not.

So if you really don't care what a variable represents, then I'd agree that a single-letter name is fine. Given that math is almost universally done with single-letter variable names, are you suggesting that in math you almost never care what a variable represents? This wikipedia article makes me think otherwise; clearly, variables often have a fairly specific meaning.

[http://en.wikipedia.org/wiki/Greek_letters_used_in_mathemati...](http://en.wikipedia.org/wiki/Greek_letters_used_in_mathematics,_science,_and_engineering)

</comment></comment></comment></comment></comment></comment></comment><comment><USER25> This is so wrong... The point of math is that ideas can be generalized and re- used in previously unexpected places -- your ideas remind me Middle Ages where people were learning a mnemonic poems to remember "law of proportion", treating it like a precious magic gizmo and were perfectly sure they wouldn't be able to recreate it once forgotten.

<comment><USER26> Have you read the article? One of his arguments is that math, due to its interface, is not about ideas but about abstract symbols and "symbol-pushing tricks". For example many people know how to use the chain rule when they derive a function, without even having the slightest grasp of what is going on. How is this any different from "learning a mnemonic poem to remember the law of proportion"?

</comment></comment><comment><USER27> I can't help but think this is completely missing the point.

TED has had people cover this a number of times, but the problem with math isn't that the the _syntax is too hard to parse_ its that the _problems in math class are stupid_.

"The bucket is depth X, diameter D and full of water. When you open the tap, how long will it take to drain if the water drains out at rate Z?"

I've never had to apply solving a problem like this, in my entire life (and if I were in a job that I _did_ have to, the complexity of a real life situation would mean I would still have to learn domain specific tools to solve the problem (eg. how big is the air intake? Does that limit the rate of flow? etc)).

Tangible problems in the real world require mathematical models (often probabilistic models) to solve them.

How do you take a real world problem, break it down into bits, and then use the mathematical tools available to solve them?

By creating a model, and then guessing what the rules that govern that model are, then comparing the model to reality, and refining the rules; and when you can't figure out the rules, thats when its time to whip out the text book and say, well, guess what, someone has had that problem before and this is how they solved it~

Teaching kids how to create models and reach out into the mathematical library available to them when they need it would be vastly more helpful than trying to creating more abstract alternative ways of understanding obscure math concepts that will never to relevant to them.

I've never been more frustrated than I was the other night when I was at a party and a boiler maker (who incidentally earns 3x what I do. damn mining boom) was telling me about all the cool math he's learnt since he started his job. It's all geometry and rate of flow differentials and he said "why did I have to learn matrices at school? total waste of time. they should have been teaching us useful things"

<comment><USER28> I find the syntax of math very hard to parse (and I write and use parsers as part of my job).

For people who "get" math, I agree it's very difficult to understand how another, obviously intelligent person can find math difficult to understand and use – especially someone who has put in substantial, sustained effort and has zero problems with the command line, programming, algorithms, parsers and just computer science in general. It doesn't make any sense.

Except they do exist (I'm living proof).

Frankly, I'm baffled by the problem. I've read numerous books on math, taken tons of courses, and spent quite a bit of time trying to figure out why math, as a tool, is out of reach to me.

Sure, I can apply the "rules" at a purely syntactic level, but a good example of where math-like thinking is needed _as a tool_ is with a language like Haskell, which I also find completely opposed to how I think about and see the world. I wish I knew why, because I'd like to use it. :(

So while I think the presentation is at least part of the problem, there's something about mathematics that needs to "click" before you can really make use of it, and that hasn't happened for me yet, despite literally _decades_ of trying.

If anyone has pointers for books, I'll be checking back here for comments.

</comment></comment><comment><USER29> OK so it takes years to learn Japanese but it is the only way to truly enjoy haikus...

The la guage of modern maths is what has enabled the physics at the LHC. You cannot get the latter without the former, hard as you may try.

</comment><comment><USER30> It will be hard to come up with an accessible general framework to express general problem situations without resorting to either (a) an explosion of templates for solving the N-most-common kinds of problems (the browsing through which will be worse than learning the math and the programming); (b) a set of elaborate but limiting special-purpose programs (much like iPhone apps that might help, for example, a metal welder to choose stock feed rate, gas mix/flow, and electric current depending on metal type and thickness to be joined; or mortgage calculators).

Worse yet, it doesn't take much for interesting problems to get into the land of over- or under-constraint. In an under-constrained problem there are a multitude of solutions forming their own K-dimensional space, and then one likely should apply some secondary optimization criteria to determine the best solution. In over-constrained problems there is no exact solution, but again one needs to impose some optimization to get something "close enough" to the desired criteria, according to some norm. Explaining the need for optimization, letting the user explore the solution space, and having them express these optimization criteria will be tough.

A Google search for "geometric constraint solver" leads to this paper: [http://www.cs.purdue.edu/homes/cmh/distribution/papers/Const...](http://www.cs.purdue.edu/homes/cmh/distribution/papers/Constraints/CAD95.pdf) \-- what appears to be a lot of work just in helping people/machines solve geometric problems (though surely more widely applicable when taken in the abstract). Coming up with even more general "hands-on" explorers/solvers will be a lot of work.

</comment><comment><USER31> For the more mathematically inclined, there's a really nice little book, "The Computer as Crucible" by Borwein and Devlin, about experimental math. It makes a really convincing case, that I think couldn't have been made 15 years ago, that computers really have something essential to contribute to mathematics now. I think Borwein has written a number of articles about the same, and Devlin had a column in the AMS Notices about computer math.

</comment><comment><USER32> Tell me if I'm wrong, but I have this theory that the whole Math could be expressed on top of a single basic operation, which is addition.

For example 2 * 3 is (2 + 2 + 2).

      Or sin(7) is (7 * (1 + -0.1666666664*(7*7) + 0.0083333315*(7*7)*(7*7)
      + -0.0001984090*(7*7)*(7*7)*(7*7) + 0.0000027526*(7*7)*(7*7)*(7*7)*(7*7)
      + -0.0000000239*(7*7)*(7*7)*(7*7)*(7*7)*(7*7)))

(the multiply operator left in for brevity, but can be easily replaced by addition)

If my assumption is true, then Math is really just an arcane and archaic form of a computer-like language.

And at the same time, it's possible that the operations meant by Math's various symbols, however arcane, can be understood much better (especially with the use of modern tech, animations, etc.) than we understand them from classic texts, but those who learnt them haven't spent enough effort to create more visual explanations of it, based on which others, and also themselves, could understand those operations better, and then be able to build on top of them and even evolve Math further. (I know that I don't know what I don't know, but I have tendency to assume that I know a lot more than I really know, thus I don't explore the known deeper/further.)

<comment><USER33> Addition is a function and so functions would be a more basic concept. But functions are sets and sets are a more basic concept. Thus we should study sets. Everything comes from sets. Replace addition with sets and your first sentence would be closer to the truth.

I strongly disagree with your last paragraph though.

<comment><USER34> And you can take sets as something built on top of categories (specifically, topoi), so category theory is more foundational than set theory.

<http://plato.stanford.edu/entries/category-theory/>

<http://sakharov.net/foundation.html>

<http://en.wikipedia.org/wiki/Topos>

</comment></comment></comment><comment><USER35> > _When most people speak of Math, what they have in mind is more its > mechanism than its essence. This "Math" consists of assigning meaning to a > set of symbols,_ _blindly shuffling_ * around these symbols according to > arcane rules, and then interpreting a meaning from the shuffled result. The > process is not unlike casting lots.*

Wow, sounds like someone doesn't really understand math.

<comment><USER36> Brett Victor is very accomplished. I'm pretty sure he understands math. Personally speaking if Brett Victor had a different opinion about something than me than I'd pay careful attention, because I'm probably missing something.

<comment><USER37> jpdoctor is a bomb-thrower, your words fall on deaf ears.

</comment></comment></comment><comment><USER38> This is interesting, I especially like the Scrubbing Calculator. While I am not sure how it would handle math above Algebra 1, I think this could be great for building intuition in Pre-Algebra and Algebra 1, which are the most important years of math education, in my opinion.

I tutor some 11-14 year-olds who are studying these sorts of things, and it's incredible how many of them can look at something like 100/0.08 and have absolutely NO idea what neighborhood the answer should be in. (For example, they might accidentally multiply, get 8, and never think twice that the answer couldn't possibly be 8 because it has to be above 100.) Something like this might be really helpful in building intuition about the relationships between numbers.

</comment><comment><USER39> Oh FFS. Everything has a barrier to entry. Just work with it until you get over it.

People want instant gratification these days. It takes time to understand stuff.

The Internet (and crappy TV about popstars and shit) has lead to people having completely unrealistic expectations of everything.

<comment><USER34> I see more people agree with you than with me, despite the fact upvotes aren't meant to be used that way. HN can be trying at times, can't it?

<comment><USER39> Indeed - but that is the nature of the Internet. There should always be a counterpoint to a good view.

</comment></comment></comment><comment><USER40> His "interactive exploration of a dynamical system" looks like some very sweet software.

It's not an entirely new concept though. Modeling tools like Vensim and Stella do something very similar, modeling differential equations with "stock and flow" diagrams. Modeling problems with tools like these is a pretty active field, with applications in economics, ecology, and engineering. There are a fair number of books about it.

Vensim has a free "personal" version, if anyone wants to play around with this stuff. It's definitely not as elegant as Bret Victor's demo, but might be better for more complicated systems (depending of course on how much Bret left out of the demo).

</comment><comment><USER41> I pretty much read everything Bret Victor produces these days given he is responsible for one of the most insightful presentations I've ever seen: <http://vimeo.com/36579366>

<comment><USER32> Thanks, I did not realize it was the same guy, I still have that video in watch-later.

</comment></comment><comment><USER42> Previous discussion: <http://news.ycombinator.com/item?id=2532271>

</comment><comment><USER20> Are there any good apps for the iPad that let you manipulate variables and equations in a tactile manner? I have Ovium which is a calculator where you put your numbers in bubbles and then connect them however you want with different operators. I'd like like something where you could use the value of a slider to change the value of a variable.

</comment><comment><USER43> Quite aside from any of the main points being made here, the guy is dead on about Strogatz's book. I had the same reaction to that book as I did to Lipovača's Learn You A Haskell - it's a great accessible resource to learn something new and interesting (if perhaps not immediately useful). Would appeal to the HN crowd I imagine.

</comment><comment> iso8859-1 I really like the Soulver program that he mentions on the page for the "Scrubbing Calculator". I found a similar Windows/.NET program called OpalCalc: <http://www.skytopia.com/software/opalcalc/>

Time to do a web edition? Surely it already exists. Somebody help me out :P

</comment><comment><USER44> I had thought the movement to kill math ended long ago with this video:

<http://www.youtube.com/watch?v=MfgX0fyNeLc>

<comment><USER45> No, it was done in by 2: <http://dtecomic.com/?n=2>.

</comment></comment><comment><USER46> He's identified a real problem and is going in the right direction.

I don't think we need to go quite as far though to make an improvement.

A simple observation that I find amazing that more people don't see, is this:

Mathematics is obfuscated code that doesn't compile or run.

One letter identifiers and odd symbols rather than useful textual descriptions.

No way to drill down into the meaning of the symbols.

With code you can take a higher-level function and look at the code for the functions it uses, then look at the implementation of the language, then look at the assembly language, etc. No such thing in mathematics.

</comment><comment><USER47> Fix your scrolling; I think your message will benefit from increased usability.

</comment><comment><USER48> Someone doesn't know the formal definition of computation. This is all there is to it really.</comment>


Scaling Dedicated Game Servers with Kubernetes: Part 2 – Managing CPU and Memory - <AUTHOR> http://www.compoundtheory.com/scaling-dedicated-game-servers-with-kubernetes-part-2-managing-cpu-and-memory/ <comment><USER2> From the first part of the series.

      While I am aware of more than a few companies that are containerising their game servers and running them in production, I am not aware of any that are doing so on Kubernetes.

I believe Pokemon GO is using Kubernetes, which is one of the biggest multiplayer mobile games in the world at the moment.

Link: [https://cloudplatform.googleblog.com/2016/09/bringing- Pokemo...](https://cloudplatform.googleblog.com/2016/09/bringing-Pokemon-GO- to-life-on-Google-Cloud.html)

<comment><AUTHOR> In response to this - afaik, there is no evidence that Pokemon Go is running stateful game simulation servers for their game, especially those that would power something like an FPS or MMO (They may be, but I've not seen any public evidence of it), which is what I'm referring to in this article. Sounds like I should have been clearer on this point, as you aren't the first to point this out.

<comment><USER2> Yeah, i never implied the Pokemon GO server was stateful (and it definitely isn't) in the way that other MMOs/FPSs that require persistent connections are. However, you can't say that it isn't a "game server".

I looked through comments to see if anyone had pointed it out and didn't see anything. Figured maybe you'd be interested to know that Kubernetes was used for something so massive. My bad.

<comment><AUTHOR> No worries - and thanks for pointing it out (I meant you weren't the first person to say this to me). It's worth the clarification.

It's an interesting differentiation in vocabulary between the games industry and what would be the wider technical community, in my experience - a "game server" is a simulation server when talking about it in the games industry. I should have made a note of that in the previous article.

</comment></comment></comment></comment><comment><USER3> Regarding the first article, strictly speaking it isn't necessary to use hostNetwork, but to actually do it in standard public cloud environment isn't really possible.

Normally it's good idea to avoid hostNetwork as it creates quite a bit of limitations. For example, you cannot use network security policies and you cannot use deployments to assign more than 1 pod per node. To allow same application to run multiple instances on same node, you would need to create multiple deployments with different ports.

To avoid hostNetwork, essentially what is required is that you need publicly routable addresses for each pod (1:1 NAT is also possible, but it's quite a bit more complicated, e.g. you probably need create custom ingress controller which creates the 1:1 NAT mappings) which is also the reason why this doesn't really work in public cloud environments. If you can accomplish that though, you get to use all of Kubernetes' standard features on your pods.

tl;dr NAT sucks

</comment><comment><USER4> FYI to the OP, the website shows a blank page when JavaScript is disabled.</comment>


There's a supply and demand problem in podcasting - <AUTHOR> https://www.indiehackers.com/post/99b22dea0a <comment><USER2> Podcasts are becoming to the COVID depression what cupcake bakeries were to the Great Recession: an easy-to-start, low-capital-required microbusiness that attracts lots of people who find themselves at loose ends when their pre-crash gig suddenly vanishes.

Most of the cupcake bakeries didn't last long. Make of that what you will.</comment>


Building a Home Lab to Become a Malware Hunter – A Beginner's Guide - <AUTHOR> https://www.alienvault.com/blogs/security-essentials/building-a-home-lab-to-become-a-malware-hunter-a-beginners-guide <comment><USER2> Back when I took an interest in malware analysis I got the book Practical Malware Analysis and must say it really was brilliant. Analyzing malware requires knowledge of a range of different technical areas, and the book introduced them well. The best thing though are the malware samples supplied for analysis after each chapter so you can test your new skills, and then the detailed walk-throughs of how each should have been analysed in the appendix.

You might need some additional help with assembly. Personally I looked at the "megaprimers" on securitytube.net and then the Intermediate Intel x86 series of video lectures on opensecuritytraining.info.

Proper study of the material takes time and I never got through it all. Perhaps I'll get to return to it.

<comment><USER3> This: [https://www.nostarch.com/malware](https://www.nostarch.com/malware) ?

<comment><USER4> definitely

</comment></comment></comment><comment><USER5> If this article is interesting to you, also worth checking out Cuckoo Sandbox:

[https://www.cuckoosandbox.org/](https://www.cuckoosandbox.org/)

</comment><comment><USER6> I have toyed with the idea of setting up a separate network parallel to my home network to do something like this. I just haven't made the effort or had the time. I like this setup.

</comment><comment><USER7> This is a great resource.</comment>


A technical comparison of open source drone autopilots (2012) - <AUTHOR> http://online.qmags.com/RAM0912?pg=21&mode=2#pg35&mode2

<comment><USER2> Because it's a few years old it's missing the two big guns in acro flight: clean flight and base flight (and the drama between the two camps). Also some of the information about the PID controllers is a likely out of date and with some firmware there are actually multiple PID controllers to choose from.

But apart from that most of the information is quite good as a historic reference.

</comment><comment><USER3> Good subject, but the article is 3 years old in a fast moving field, and displayed in a painful e-book program. Is there a better article available?

<comment><USER4> This is really not "a book", but more a set of summaries of robotic subjects from a diverse group of technologists working in the field.

Each article contains extraordinary insight and is thus a valuable thing to read, especially if you are _new to the subject_.. as students and industrialists alike.

Even if its 'only of 3 years ago', actually the subject of software and robotics is decades old and has had its ebbs and waves of 'hot new idea of today' such that the subject is very dense.

In my opinion, robotics and autonomous systems is a subject now moderately impervious to the "not the new new" syndrome suffered by technologies, young and old. 3 years is just a blip.

<comment><USER5> Except CPU designs from three years ago are no longer considered current, and robots are built around CPUs (that is, if it lacks a CPU, it is not a robot), so three years is long enough to obsolete a vital component.

<comment><USER6> All of these are running on micro controller or similar embedded platforms that are are significantly slower to change than consumer CPUs. Calling them obsolete is not a realistic stance to take. Some of the hardware has changed over the years, but the changes have been mostly to the sensors used and other peripherals, they are still using the same CPUs they did a few years ago and they're definitely not obsolete.

<comment><USER7> > they are still using the same CPUs they did a few years ago

Not true; at the writing of the article, the Pixhawk board was using the LPC2148, and today it uses the STM32F427... who knows what else has been changed over the years as well?

<comment><USER6> Yeah, that's possible... I didn't go through all of them, but some had remained essentially the same, e.g. the OpenPilot board had changed some sensors but is still using the same CPU as far as I can tell.

But that's really besides the point, the CPUs they were using have not really turned obsolete like GP said. Even the STM32 F4 series you mention was released in 2011, before this article was written. And that's the latest generation of the STM32 series, so it hasn't gone obsolete.</comment></comment></comment></comment></comment></comment>


D3.js 101 - Technical Intro - <AUTHOR> http://scottcheng.github.com/d3js-101/#/title <comment><USER2> These two-dimensional presentations confuse me if I don't realize they are two-dimensional at first. I press the right arrow key through the entire presentation and I find it much shorter than I imagined. Then I realize you have to go down as well.

<comment><USER3> I was very interested to see a presentation about D3.js, I struggled to wrap my head around it a few days ago and left for simplier libraries. I opened this presentation and I can't figure out in which order should I visit these pages. I closed it in anger.

Good intentions, awful execution.

<comment><USER4> Just use the space bar.

<comment><USER5> On iOS?

</comment></comment></comment></comment><comment><USER6> As a fun but related aside, Wistia are using d3 for a pretty cool background on their developer docs:

<http://wistia.com/doc/upload-api>

Click on the background to see the voronoi cells, script here:

<http://wistia.com/doc/javascripts/voronoi.js>

<comment><USER7> Another fun but related aside: I used d3 to help generate layouts of tightly packed circles, which are then used as the animated background in my agency's 2013 holiday poster.

Generator: <http://2013.poster.thirteen23.com/generator/>

Poster: <http://2013.poster.thirteen23.com/>

<comment><USER8> This is pretty cool. I'd be interested in reading a blog post about how you did this, pitfalls you encountered, etc.

<comment><USER7> Thanks! There's a barebones colophon in the HTML source, and I've published the source code [1], but I do intend to write up sometime soon.

[1]: <https://github.com/thirteen23/2013-holiday-poster>

</comment></comment></comment></comment><comment><USER9> Check out Scott Murray's D3 Tutorials

<http://alignedleft.com/tutorials/d3/>

Also in book: <http://shop.oreilly.com/product/0636920026938.do>

<comment><USER10> Thanks for posting this, I had read part of those tutorials a few weeks back and they were really great at explaining the logic, but I couldn't find them again when I wanted to show them to a colleague.

</comment></comment><comment><USER11> <http://tributary.io/> is a cool playground for d3.js.

Also <http://www.dashingd3js.com/> is a good tutorial for learning d3.js (goes into more detail than the linked slideshow).

<comment><USER11> I mocked up a simple chart using d3 in tributary for our development team last week if anyone is interested in looking at it: <http://tributary.io/inlet/4637557>

I tried to add tons of comments explaining what's going on.

</comment></comment><comment><USER12> I'm the guy who made this presentation. I see a lot of complaints about the two-dimensional layout of slides, so let me say that this was made for a talk, and I put it online so that my audience could play with it when I gave my talk. Also, during my talk, I did lots of real-time demos on that empty playground page and highlighted a bunch of technical details that are not on the slides. Therefore I agree with those who find it confusing that this is definitely not the best reading material for learning d3, but like @bengillies said, it served my purpose as the presenter.

If you are interested in learning d3, there are a bunch of tutorials on the GitHub wiki: <https://github.com/mbostock/d3/wiki/Tutorials>, and I like this one in particular: <http://mbostock.github.com/d3/tutorial/circle.html>. Not comprehensive, but very clear on what it covers.

Let me also recommend this talk for d3 starters: <http://vimeo.com/35005701>. It starts with very basic stuffs (JSON), and has lots of live demos. I kinda learned from it when making this presentation.

</comment><comment><USER13> I did a SkillShare presentation on D3.js a few months ago covering basic topics and workflow within D3.js. People might find it useful after looking at this presentation, since it goes a little bit more in-depth with documented source code.

<http://kpeng.github.com/d3-workshop>

</comment><comment><USER14> The best things about D3 are how well documented it is and the volume of examples available: <http://bl.ocks.org/mbostock>

I wanted to map a few tweets the other day and the examples helped a lot

<http://shanes-tests.appspot.com/d3>

</comment><comment><USER15> I wholeheartedly enjoyed the presentation (which makes me a weirdo I guess). The content was also really good. I have been wanting to fool around with D3, but it seemed too daunting.

</comment><comment><USER16> Anyone else get an error trying to run this slide? (ARRAYS & DATA MANIPULATION) on <http://scottcheng.github.com/d3js-101/#/data-manipulation>

I don't understand whats going on here, what does array[, accessor] and [start, ]stop[, step] mean? I get an error "SyntaxError: Unexpected token ," which I tend to agree with.

<comment><USER12> That's just API spec, not syntactically correct JavaScript... The parameters in [] are optional. I.e. you can pass only one array to d3.max, or pass an array and an accessor. Similar with the range API.

</comment></comment><comment><USER17> The content was good, but the layout of the presentation was stupid.

</comment><comment><USER18> I think there can never be enough D3 tuts, added this to my bookmark list. I really enjoy the wide variety of data representations possible with D3.

Wonder what other good tuts are out there?

</comment><comment><USER19> Why playground no load for me :( <http://scottcheng.github.com/d3js-101/playground/>

<comment><USER20> Yeah, that page is basically a blank slate with d3.js loaded. You should open the js console, and cut/paste code from the presentation. Works great!

</comment></comment><comment><USER21> I expected more than, what, four slides?

<comment><USER22> It's two-dimensional, you can also go down. Press ESC to get an overview and pressing SPC guides you through all the slides (ie. goes down as well).

</comment></comment><comment><USER23> Here's more resources for d3.js on my site :)

<http://pineapple.io/resources/tagged/d3-js>

</comment><comment><USER24> on IE don't work</comment>


Ask HN: How to not feel guilty or ashamed about not knowing something? - <AUTHOR> My career has taken a non-linear route to development. I didn't go to college and I barely graduated high school due to familial environmental factors. Regardless, I got a low salary job working for FANG and worked my way up into a developer position. It took a lot of studying Algebra, which I had previously flunked, and Python with a dribble of CS.
I'm still pushing myself to learn every day, but I constantly feel inundated by things I don't know and intimidated by people with amazing technical backgrounds. Others seem fine not knowing something, but for me it eats at my self-esteem, making it harder to be confident at work and difficult to enjoy the learning process.
How do you handle not knowing and cope with the impossibility of knowing everything? <comment><USER2> The key is in what you said -- recognizing that it's impossible to know everything. This is true for me, you, and everyone else.

What this means is that it makes no sense to feel guilty or ashamed about it, since it's not only an inescapable situation, it's the same situation that literally everyone is in.

What should cause shame and embarrassment is acting like (or believing that) you know something when you don't!

I'm a big believer in two things related to this:

1) Kettering's Principle of Intelligent Ignorance. The most important thing to know is what the limit of your knowledge is. We are all ignorant of more things that we have knowledge about, after all, and knowing what you're ignorant of helps keep you out of traps and enhances your credibility.

In other words, intelligent people recognize their ignorance. Unintelligent people are blind to their ignorance.

2) Discovering that you're wrong about something is a moment to be celebrated, not ashamed of. Being corrected means that I've just become a little less stupid. That's a great thing! As a corollary, acknowledging to others that you've been wrong enhances your credibility to others. It does not reduce it.

Professionally, the important thing is that you have a overview-level knowledge of most things, and an in-depth knowledge of the things that are important to your position (and positions that you're aiming to achieve). That's a much lighter lift than trying to be competent in everything.

<comment><USER3> Very well put.

I would add, once something is explained to you, then you must know it. Nothing is worse than explaining the same thing 5 times. I find writing it when told is of value as it helps to enforce it.

<comment><USER2> That's an excellent observation.

This is going a bit afield, but I developed a general workplace habit a long time ago that also covers this... whenever I have any important verbal work- related discussions, including when someone teaches me something, I write an email to them restating my understanding of what was said.

I've found this valuable because it can happen that I've misunderstood what was said and this can serve as a sort of error-check against that. It also serves as notes for future reference and, as you say, helps to cement it in my mind.

</comment></comment></comment><comment><USER4> I think rather than focus on your problem of not knowing, I would suggest you take stock of what you do know and find value in that. You mentioned that you started out at the bottom and have worked your way up, maybe it's time to pay forward the opportunity that was given to you. Find someone that is just starting out and give them a boost, maybe help them understand something they are struggling with.

IMHO Nothing will make you feel better, and also reinforce your understanding than helping someone else learn something you know. I would also look to someone higher up than yourself and reach out for help in learning something your having trouble with, most people will go the extra mile to share their knowledge for the reason I gave above.

</comment><comment><USER5> I am the same situation as you, when working in a professional environment and with colleagues who are more qualified than me in terms of qualifications and knowledge, but that makes me constantly study and supplement knowledge and skills. to be able to follow them. and now I am managing a website of my company, glad that my effort paid off, and I believe you too, please visit my website, welcome you [https://muabanthuoctay.com/](https://muabanthuoctay.com/)

<comment><USER2> > working in a professional environment and with colleagues who are more > qualified than me in terms of qualifications and knowledge, but that makes > me constantly study and supplement knowledge and skills.

Yes, this is important. I learned a couple of decades ago that I am happiest when I'm working with people who are a bit more skilled and knowledgeable than I am. Not too much -- that's hard on my ego -- but some. Working with such people means that I have to stretch myself and gives me an expanded pool of people I can learn from, so it makes me a better dev.

</comment></comment><comment><USER6> You are always going to find people who know something you don't, but the core discipline to learn and progress you have more than proven. Knowing more stuff is just like a cache in a way. You can do any one your peers can do if you learn that thing. But no one can learn everything! Hence teams exist with different skill sets. You've done amazingly well to get this far. It's ok to keep going up, it's ok to cruise for a while too. Good luck!

</comment><comment><USER7> It took me until I was 50+ to not feel guilty about not knowing something. Before that, my answer was not "I don't know", but "let me get back to you". I would then find out and get back to them.

What changed? I think the team got bigger, I got more responsibility, and I just got tired. I'm not the only one who can answer the question. There are other people who know (most) areas better than me, and they can answer the question. And I don't have the energy to be the guy who digs up all the answers. I've got other things I need to do with my time.

</comment><comment><USER8> You're overstating the advantage of "knowing everything." Instead realize that there is an advantage to _wanting_ to learn, attempting, and improving.

Answer honestly, ask for help, and learn.

</comment><comment><USER9> This covers so much more things than you actual question, but let me try.

You must realize that self confidence is not about thinking you are the best on what you do, but making sure that you are trying to do your best at every opportunity that you are given.

Once you assimilate that, you will understand that asking for help is sometimes the best way to do your best. And you will grow as a person with that.

</comment><comment><USER10> Would love to talk to you further. Our stories are very similar.</comment>


There is a drug that could help Autism, and no one cares - <AUTHOR> https://en.wikipedia.org/wiki/Piracetam

<comment><USER2> I take piracetam every day, and I still 'sperg all over the place. Myth busted.</comment>


The Mall Bathroom Test to Identify Entrepreneurs - <AUTHOR> http://www.smallbiztrends.com/2008/06/the-mall-bathroom-test-to-identify-entrepreneurs.html/

<comment><USER2> Ugh. I think the first sentence of the last paragraph sums up the article best:

"Maybe this just means that we're not very good at predicting who will become an entrepreneur."

</comment><comment><USER3> It is a stretch to call this an article. I also think the title should be "The Mall Bathroom JOKE for Identifying Entrepreneurs".

<comment><USER4> Joke would imply humour, which would not be appropriate either :)

<comment><USER3> touche

</comment></comment></comment><comment><USER5> This is a candidate for a downvote.

<comment><USER6> Remind me again, what is the male/female ratio among startup founders funded by Y Combinator? And does it contradict the article?

<comment><USER7> A predictor in a poorly specified model can perform just fine until you look a bit closer and identify stronger predictors, or address confounding factors explicitly. eg.

IFF women are more risk-averse THEN less women entrepreneurs IFF time lost to childbirth is a factor THEN less " "

In the former case, risk aversion drives the predictor, and linkage with gender makes it appear as though gender is a strong predictor. After breaking the predictor in two, a much more informative fit is generated. Et cetera. I make no claims as to the correctness of the above. But I am dubious that vagina possession is the kiss of death for starting one's own business. Confounding seems likely.

Ratcheting up or down the sample size does not address confounding. Are women incapable of becoming successful entrepreneurs? Oprah would probably suggest not. Are there numerous factors working against them? Yes. Far more interesting is to probe which characteristics are overwhelmingly female and which are shared among sexes.

</comment></comment></comment><comment><USER8> For all the blog posts twice the length and half the substance, this actually makes a point, and doesn't take a lot of time to do it. Good enough.

</comment><comment><USER9> I'm not sure this is accurate. The proportion of female founders must have changed over time, while the demand for an extroverted, independent, perspective, confident personality likely remains. And for example in third world countries, it's to a large extent the women starting their own home businesses. And there's really no data here, so all it is is the voicing of stereotypes. Unless some _surprise_ is communicated, there really isn't much information here.

</comment><comment><USER10> There's a very strong correlation between "yes" responses to the question "Are you an entrepreneur?" and that person being an entrepreneur.

</comment><comment><USER11> If you are reading the comments before the article:

Summary - Men are twice as likely to start businesses as women. Other traits are (psychological) are not as good as gender at predicting who will be an entrepreneur.

Note: "The Mall Bathroom Test" is a gimmick. Men go into the men's bathroom, women into the women's. Thats it.

</comment><comment><USER12> It also assumes that entrepreneurs have time to go to the mall.

<comment><USER13> It also assumes that entrepreneurs have time to go to the bathroom.

</comment></comment><comment><AUTHOR> like the comments in the post say, its one hell of a compelling title, author gets some props for that, even if the content lacks real substance, it was the first thing I clicked in my reader.

</comment><comment><USER14> lol, why would someone even write something like this?

everyone knows men is superior :)

(kidding!)

Actually, I find it surprising that there aren't more women as they are usually way more hard working then men but I guess they don't have the guts to take the risk.</comment>


Ask HN: How would you design an IT degree? - <AUTHOR> A lot of people say that degrees do a poor job of preparing people for development jobs. It's so bad that many people opt to drop out and get experience coding instead.
How would you change things? What kind of foundation would create the best developers 5 years after graduation?
To clarify terms:
IT - something that is more like modern web, app, back end. Not really things like multithreading, AI, signal processing.
Degree - a 4 year course in something. Newbies are expected to have good logic and math skills, but no programming skills. <comment><USER2> > A lot of people say that degrees do a poor job of preparing people for > development jobs.

Because IT is a _craft_ , and _universities_ are an not appropriate environment to teach craft, which is completely opposite to what companies are expecting.

Craft is best learned while doing the actual job on actual product, so you need real production lines, machines, and tools -- and somewhat modern at that. All these are too expensive (in money and man power, both in setting up and maintaining) to be kept without them earning money (producing), and an university _would need many of them for different degrees_. It's just too costly and too far from how university works and should work (science! research!).

Note that a university has some traits that a normal work doesn't have. For instance, you won't learn much of the theory behind the craft, nor would you have a chance to wet your toe in an unrelated specialization of your field. It's valuable to have both, university degrees and craft training, it's just they're two different things and IT industry doesn't carry out one of them and expects the other to fill the gap.

<comment><AUTHOR> But universities do a good job of teaching law, medicine, engineering, and art. I don't see why it wouldn't teach IT as well, especially when the facilities you need are just computers.

<comment><USER2> > But universities do a good job of teaching law, medicine, engineering, and > art.

Or do they? Can you just get a regular job directly after finishing your degree in law or medicine or engineering, or do you need to get additional training in the form of internships? Pay special attention to medicine training and electrical or civil engineering.

> I don't see why it wouldn't teach IT as well,

Actually, it _does_ work _just as well_ \-- or rather, _just as bad_. It's just the other fields are regulated and you need to have an actual apprenticeship-like training on top of that.

> especially when the facilities you need are just computers.

It's not just the computers. Out of everything, the computers are the part that's the easiest to procure. What you need is software that is actually used and that needs development and/or maintenance and an environment where students will not destroy system's code (usually it's achieved by guarding by much more numerous experienced staff). These parts (idea, users, and a way to keep the system running) are hard to acquire in IT _even in industrial setting_.</comment></comment></comment>


Ask YC: Review my startup, Atombox - <AUTHOR>

http://atombox.net
The concept: Atombox is a web app for keeping track of small bits of text. An atom is less than 256 characters and a category is just like a folder (i.e., an atom can belong to only one category). You can view all atoms in a specific category or search for atoms across all categories. It's analogous to physical index cards held in folders, with the advantage of everything being searchable and in one place.
There's a keyboard shortcut for almost everything and we use SSL for all traffic to and from the service. We also have an "RESTful" API.
Currently Atombox costs $5.00 after a 30 day trial.
There are many rough edges, especially on the landing page. Any thoughts, suggestions, ideas are appreciated.
I'll be chatting at http://tinychat.com/atombox and we're @contextlines on Twitter.
Thanks! <comment><USER2> What is the use case? looks from the website as if this is meant to be a GTD tool, but for that to work wouldn't you need notifications etc.?

<comment><AUTHOR> Yes, we use Atombox for doing GTD, along with Google Calendar. I also keep a lot of small reference and support atoms in there, too (like the size of the tires on my car and wines I like).

We do have some ideas about notifications that we might implement in the future but it's not necessary to have notifications to do GTD. Access to your lists wherever you are is the linchpin for that use case.

Thanks for your comment.

</comment></comment><comment><USER3> Have you thought about adding a mode in which anonymous users can just start using the service (but their edits are lost when they forget the URL), like Etherpad used to have?

When I read that I had to subscribe just to try it out (just to see if it does anything I can't also have with a personal wiki or rememberthemilk) and that it would be $5/mo anyway, I lost interest.

<comment><AUTHOR> We had been throwing around the idea of creating a quick demo that doesn't require signing up and doesn't persist your data. Recently we decided that we wouldn't implement that for now because we consider it a feature that your data persists in one place and want the trial to be full-featured. We also didn't want anyone to be confused about whether the data gets saved ("so I put some stuff in Atombox and now it's gone?").

I like your idea of persisting the data and using a URL as an access key, though. I hadn't thought of that.

Do you think a screencast would be sufficient to get people over the initial stand-off of not wanting to sign up?

Thanks!

<comment><USER3> A screencast is better than nothing, but for me, nothing beats being able to toy around with your user interface to get a first-hand impression of how fun it is to use, especially if the webapp is some wiki-todo-crossover. Perhaps you could offer a read-only view of an example collection?

<comment><AUTHOR> I understand. I like being able to try things out too. I think you're right: we'll have to make some sort of interactive demo.

You said above that your biggest hesitation to signing up for a trial is that it's $5/month afterwards. Do you think you would have had less hesitation if we were doing something like this?

free: full-featured up to 128 atoms, with sign-up

$5/month: full-featured up to some reasonable limit on atoms (on the order of hundreds of thousands, a practical limit to guard against abuse)

<comment><USER3> Probably less hesitation, yes.

<comment><AUTHOR> That's fair enough. Thanks for your help.</comment></comment></comment></comment></comment></comment>


$200M seed valuation for Roam shows investor frenzy for note-taking apps - <AUTHOR> https://www.theinformation.com/articles/a-200-million-seed-valuation-for-roam-shows-investor-frenzy-for-note-taking-apps?shared=931cbf4ce58ed9bd <comment><USER2> Alas, since this article is hard-paywalled it's off topic by HN's rules. For a while The Information was unlocking their articles for HN readers when we asked, but they haven't for a while now. I'll try again.

[https://news.ycombinator.com/newsfaq.html](https://news.ycombinator.com/newsfaq.html)

[https://hn.algolia.com/?dateRange=all&page=0&prefix=false&so...](https://hn.algolia.com/?dateRange=all&page=0&prefix=false&sort=byDate&type=comment&query=paywalls%20by:dang)

[https://news.ycombinator.com/item?id=10178989](https://news.ycombinator.com/item?id=10178989)

</comment><comment><USER3> Where exactly is the value here?

I struggle to believe there can be any 'tech' that can't be rapidly copied in a note taking app (correct me if I'm wrong)

And it's not _that_ well known either so it's not like they're buying into a massive mainstream thing.

I don't get it.

<comment><USER4> There are already free / free-ish clones of Roam:

      * org-roam: https://github.com/org-roam/org-roam
      * Obsidian: https://obsidian.md/
      * Athens: https://github.com/athensresearch/athens

<comment><USER5> +1 for Obsidian. Lots of refinement in such a young product. It has been my main driver recently. I picked it up primarily to keep things local rather than rely on an internet connection. Even so, took only a few minutes to add encrypted backups to S3 debounced on file change.

</comment></comment></comment><comment><USER6> It's puzzling that given the massive hype about roam on Twitter, nobody of their hardcore fans made it here.

So I'll try to add my perspective after having used and paid for it since they started charging - even though I'm for sure not a hardcore user (yet).

The first problem is calling it a note taking app in the first place. What fits much better IMHO is the term knowledge graph.

The best analog I read is that it's an extension to your brain. Because your brain works associative, Roam makes it incredibly easy to create bi- directional links between notes.

Wrapping any term in a note in [[]] creates a bi-directional link. I.e. it creates a separate page for the highlighted term automatically which you can then fill with content. On that new page you will also see all the places in other notes that mention the term. This way you create a Wikipedia-style collection of notes very quickly. This is the most basic way to explain it I can think of.

The thing is, it's not really that easy to grasp it and it has quite a learning curve. But once you start getting it, it is super, super powerful.

I don't like the whole cult thing around it but the bad website, ugly UI, high price is simply because "they can" and to keep growth under control I think. A few weeks after they started charging their founder mentioned somewhere that they already crossed 1MM ARR.

The app still has a long way to go to be ready for mass adoption (a mobile app for example would help) but I'm sure that they can somehow figure out UX with that funding.

That being said, I'm not sure they have a lot of technical leverage that would stop others from adapting their ideas and concepts.

</comment><comment><USER7> There's a guy that has a blog/course/whatever centered around Roam. I wanted to try it out but the pricing is honestly just insane.

There are so many options for note-taking apps with all sorts of features I don't think Roam brings enough to the table to justify it. Learn vim/emacs and just use a single text file instead or whatever.

<comment><USER8> I doubt that software engineers who use vim are a significant target market for them.

</comment></comment><comment><USER9> Their homepage is _really_ bad.

It shows a handful of UI examples but I still have no idea what is special about Roam except that it apparently has hyperlinks, hashtags and versioning?

There is _no_ link in any main part of the page to get a list of features? Or how it works? I have to find some links in the _footer_... which take forever to load and give you a scary "No changes to the help database will be saved." message... and one is a "complete course" ( _way_ too long), another is a long "white paper" ( _way_ too detailed).

And I can't even try it out without giving them my credit card?

Maybe this is a great, revolutionary app. But they're sure making it as difficult as possible for me to figure out why that might be.

A $200M valuation and they can't even hire a marketer or even a PM to put together a homepage that gives me good reasons why I should use it?

<comment><USER10> For anyone looking to understand Roam, I would suggest searching "roam cult" or "#roamcult" on Twitter.

I'm not one of them — but there is a hardcode, devoted fan base that are convinced it's the best thing since sliced bread. Whenever that occurs, it's worth trying to understand why.

I think the bad homepage is (somewhat) intentional: they only want people who are willing to look past the home screen and actually give it a try... and (I believe) they want to avoid the audience who is trying it just because of a flashy landing page.

<comment><USER9> Thanks for the search term.

But it's funny, what you see as positives I see as negatives. When something has a devoted fan base but nobody else uses it, it tells me it's something incredibly niche for a reason, and therefore probably not applicable to me.

And a bad homepage would be a horrible intention. Why would any product ever avoid an audience? Why would you only want people willing to look past a bad homepage? That sounds like it's screening for people who have a lot of time to waste. I'm not sure why that would be your target audience.

</comment></comment></comment><comment><USER11> Everyone here should honestly review: "What happened to the future?" by Peter Thiel [https://foundersfund.com/the-future/](https://foundersfund.com/the- future/)

</comment><comment><USER4> No other note-taking service has been able to get me to stop using paper notebooks the way Roam has. I think it's because the default view is a daily diary and it's low-friction to use it. The linking is simple enough that I actually do it (versus having to remember to do it consistently). I'm undecided if it's software that I'd pay a lot for every month, but it is nicer than Notion for my use case.

All that being said... wow, that's a crazy valuation!

<comment><USER12> Weren't people JUST saying that about Notion...

<comment><USER4> I'm not convinced Notion's valuation is sane either...

</comment></comment></comment><comment><USER13> I don't get it... I use paper or a running text file for notes. Never have I ever had a desire to make it more complex than that.

On a deeper level, I think people who are obsessed with note taking are doing it wrong. I only do it to jot down things to follow up on from a meeting or a conversation. Anything more than that disrupts active listening and keeps you from actually participating in the discussion.

In an academic setting, I would focus on listening and understanding the lecture and referred to the text when it came time to study. I'd maybe take notes for the occasional class where lectures didn't follow the text, but usually would just get them from classmates who were more dedicated transcribers.

The other thing is that notes tend to be ephemeral in my use case. Things to research or follow-ups from a meetings are basically a task list with a limited shelf life. I do jot down creative ideas in a few notebooks that I've kept over the years but that starts to approach journaling, which is a different beast. I guess software could make sense for that but writing by hand would have to become the rate limiting factor for me to cross the threshold.

</comment><comment><USER14> Tried it out, the UI is slow and janky, and there's no element of "riffing" to the tool. In notion I can riff easily and polish the notes later then share. Everything is a `/` away. This tool feels tailormade for those neurotic types that use seven different colored highlighters and plan out their month down to 10 minute blocks. "Productivity junkies".

</comment><comment><USER15> All this really says is they've done a lot more work before the typical seed. Theres a product, a hashtag, a following, a user base, a expensive video training class and more. All bootstrapped by an individual. Super impressive!

Roam will probably do very well! But 'seed' means very little here as it's, relative to most seeds, very mature.

</comment><comment><USER16> Just looked at the pricing page- wow. Roam is pretty expensive. I totally am open to paying for software but I'm not sure that by charging the amount they do, they can beat lower priced competitors, or stickies .

Maybe you do like it and think it's worth the cost but I don't think it's my cuppa tea.

<comment><USER17> I'm not sure how others feel about this, but for me a tool that supports me in my work is fine to pay for, and I honestly don't really care between $5 or $15. I like that there is some kind of value exchange, and these prices all remain more than reasonable. I pay for quite a few things like this on a monthly basis.

I do wonder about the valuation though, and that actually makes me more worried about the future of Roam.

</comment></comment><comment><USER18> I'm sorry, but I don't see any value in note-taking apps. It's likely these investors are just turning away from other products that have likely been hurt by covid.

(We work more remote now, we need to take notes, let's do it online, investor frenzy).

</comment><comment> dawg- I am an Evernote junkie but Roam is really intriguing. Linking thing together on Evernote is very clunky. Not sure if I will switch to Roam but if Evernote adapts some of their ideas I will be very happy.

</comment><comment><USER19> I think this has the ability to be similar to Dropbox. Everyone on here knocked Dropbox with "all you gotta do..." alternatives.

I'm interested to see how incumbents like Notion try to compete.

<comment><USER20> Funny to hear Notion described as an incumbent! Having used both though, Roam did much more to fundamentally change how I took notes and use them to form new insights and ideas.

</comment></comment><comment><USER21> Is characterizing Roam as a note taking app accurate?

I thought the whole point is it allows you to create relationships between ideas, which would be huge if done well.

</comment><comment><USER22> > "As powerful as a graph database."

Can someone who has used Roam explain what this means?

<comment><USER23> Basically with Roam you think of your notes as a graph - when you link to another page, that becomes a relationship in the graph. Technically this is possible with any note-taking app that allows links between pages, but one of the nice things allowed by Roam due to modeling this way is you can see automatically all the pages that link to the current page, as well as instances of the page title that are still unlinked.

This also applies on the block level (you can reference any piece of text anywhere else without copy/paste), though blocks & block references are not currently shown in the default graph view.

</comment></comment><comment><USER24> Evernote part 2?

<comment><USER25> In 2011 I downloaded Evernote for Android and promptly took an important note down while in a meeting. I got an email during the meeting (tablet notification), and I opened it. Upon returning to Evernote (using the Android app switcher), my note was _gone_. "Ever"note must have deleted my note in onPause or onResume. Ugh. I've been calling it Nevernote ever since. The #1 thing Evernote had to do was not delete my notes but that's all it did for me.

A simple email draft would have been millions of times better. I don't take many chances on new notes apps now. I'm "sure" Roam won't delete my notes...until it does.

 _Gmail drafts as notes_ for life. Offline, syncing, multi-platform, extremely unlikely to shut down. Easy social integration (fill in to: field and tap Send). Got everything I personally want.

I'm also coding my own take on a new notes app......so we'll see.

<comment><USER26> No offense, but using Gmail Drafts of all things as a response to what sounds like a pretty rare bug (I've been a paying Evernote user for 10+ years and have never lost a note) does not make any sense. What happens when something glitches out with your drafts?

I can understand the desire to use caution , but "I don't take many chances on new note apps now" as a result of that rare bug from ONE vendor seems extreme and unnecessary.

<comment><USER25> An attempt at a non-biased search [https://www.google.com/search?q=note+app+deleted+my+note](https://www.google.com/search?q=note+app+deleted+my+note) and another [https://www.google.com/search?q=note+app+deleted+my+note+and...](https://www.google.com/search?q=note+app+deleted+my+note+android)

suggests that notes apps unexpectedly deleting notes is a major concern for users on both platforms (iOS and Android).

Perhaps my reaction is extreme, but I haven't lost a note since or worried anxiously about that issue with a new app. I get that gmail drafts isn't for everyone, but this type of destructive bug isn't rare at all. It seems to be very common.

And the platform I trust to not cause that bug is gmail drafts. Maybe one day I'll be in for a rude surprise but so far I have been very happy.</comment></comment></comment></comment>