Ask HN: How can I learn to read mathematical notation? - <AUTHOR> There are a lot of fields I'm interested in, such as machine learning, but I struggle to understand how they work as most resources I come across are full of complex mathematical notation that I never learned how to read in school or University.<p>How do you learn to read this stuff? I'm frequently stumped by an academic paper or book that I just can't understand due to mathematical notation that I simply cannot read. <comment><USER3> Sort of copy-pasting one of my earlier comments, apologies, but I highly recommend the book "Mathematical Notation: A Guide for Engineers and Scientists" by Edward Scheinerman (Amazon link: [http://a.co/c1jcvLH](http://a.co/c1jcvLH) ). It's short, and perfect for looking up symbols, brackets, subscript/superscript conventions etc. for science and engineering math (for me, the stuff I encounter in my programming life, when I read papers & books that deal with graphics programming, DSP, cryptography, etc.).

It's difficult to google mathematical stuff, especially since each symbol has many different meanings depending on which branch of mathematics you're dealing with - this book solves that problem nicely by letting you look up by the roman letter a symbol is similar to, by mathematical discipline, etc.

<comment><USER4> You put a referral code in the URL? I find that somehow objectionable.

<comment><USER5> Even if so, this is an acceptable incentive for people to comment with Amazon links. If find this a problem for services like [http://hackernewsbooks.com/](http://hackernewsbooks.com/) (there are few others). If someone mentions just a title of a book, it doesn't get indexed.

</comment></comment></comment><comment><USER6> John von Neumann once said, "Young man, in mathematics you don't understand things. You just get used to them." While probably not the originally intended meaning, you can take the quote as saying that, after reading a lot of papers in a given field, you will "get used to it" and recognize recurring patterns and what they mean. This is particularly important as more often than not, part of the math is left out (presumably because it's too trivial for the authors or the want to fit the page limit). So, part of being able to "read the math" is to infer what's going on in between.

Many papers, especially im engineering, use a lot of mathematical notation that doesn't benefit the reader, it's just there to show off. Often, there are mistakes in there too, because no reviewer typically goes to the trouble of checking every single equation. When reading a paper, don't get bogged down by all the equations. Read it once or a few times before getting down to that level. Often it's helpful to read other descriptions of a particular algorithm, for example in a student's thesis, which contain more detail and contextualize some of the math.

While you may not find this comment particularly helpful, as I'm not pointing to a guide or something, you could take away from it that it takes practice and that one shouldn't be discouraged when you don't understand the math in a paper, as I guarantee you there are maths professors that couldn't make sense of it either.

<comment><USER7> > _it's just there to show off_

That is true, unfortunately, in much of the mathematical literature. Way too often authors use the formalized language where the plain language would suffice. This kind of abuse is extremely widespread. It is one thing when a formula is used to represent, say, a complicated integral; it is another when a formula is used to express something just as easily said in a couple of words.

<comment><USER8> When I first began writing papers I tried to describe using prose. I found that readers were confused and there was much more ambuigity than I anticipated. By using mathematical notation, it becomes a lot less likely that you are misinterpetted and often takes less space. It's kind of like the difference between providing code versus a written description of the algorithm.

<comment><USER9> The problem is assuming that the reader is already familiar with the notation, and consequently not explaining it.

<comment><USER10> If it is a mathematical paper it is targeted at other mathematicans eho should be able to understqnd the notation.

<comment><USER11> My math professors would teach maths under the presumption we knew mathematical notation. I felt I got thrown in the deep in during first-year calculus units but I also now feel strangely adept at reading maths so it had a positive effect.

</comment></comment></comment></comment></comment></comment><comment><USER12> I've been reading mathematical notation for decades. You face three things I've noticed:

1\. People are typically _really_ bad at writing mathematics -- notational brevity is not a virtue when attempting to communicate ideas. You may find value reading through notes on Knuth[0] and what he taught regarding writing mathematics.

2\. There is a certain level of field/conceptual awareness needed when translating the coded concepts in an academic paper/textbook. However, consistent with (1), people are bad at encoding. Using several topical texts at your disposal can help. For example, in econometrics your standard masters year 1 texts are Greene, and Wooldridge. Wooldridge is expansive and simpler to read, Greene is more fundamental and uses horrendous notation. I found reading the same topics in Wooldridge helped me decode Greene, from which I was able to deepen my understanding of Wooldridge.

3\. Very few people can read a paper or text once and know it immediately. The most studied professors I know will take months to fully digest a seminal article that incorporates new ideas -- if you're new to a field, _every_ article is seminal to you.

Don't give up. It takes practice to decode, to put the concepts into a mentally straightforward order, and so on. The fact you're asking about it shows that you care, and if you let that grow you'll get to the point you want to be.

[0] [http://jmlr.csail.mit.edu/reviewing- papers/knuth_mathematica...](http://jmlr.csail.mit.edu/reviewing- papers/knuth_mathematical_writing.pdf)

</comment><comment><USER13> I think you've got this backwards. You don't need to understand the notation, you need to understand the math. If you don't understand the notation then you probably don't understand the math in the first place so learning notation won't help. Learning how a matrix is written is useless without understanding what a matrix is.

You need to find out exactly what type of math is used in the paper and learn that. Learning notation will come along with that. If you're interested in machine learning then you should probably start with:

* Proofs and logic (a general requirement to understanding math) * Linear algebra * Statistics * Some multi-variable calculus

<comment><USER14> Partly, perhaps. For me, a large part is the notation. I know conditionals, I know loops (as in for loops), I know SQL... but if you show me logic, set theory, a sigma, or, uh, what's this sigma but for multiplication, I wouldn't have known what you meant a few years ago. It's not only understanding the math, it's also the notation.

I still don't know how to read things like curly braces or matrices or a dozen other things that I don't even know the name for, and figuring it out is usually more work than it's worth. As a result, I don't understand Wikipedia articles that are supposed to be introductory and understandable to the masses, but because the article's writers are being fancy, it's only understandable for a privileged few. Often the concepts, if I do bother to understand them or look them up elsewhere, are rather simple.

It also doesn't help that people use things incorrectly or ambiguously. Sometimes a line over some math will mean the average (or "mean", to use the ambiguous lingo) and sometimes it's an infinite repetition.

Or the lingo: a friend of my girlfriend was baffled I didn't have X in school and didn't know what it was (I think it's derivations). She kind of explained it to me and I kind of understood, not recognising it. Later that evening I used it, unknowingly, in programming. When showing my girlfriend what I made she pointed it out to me.

Heck, I recently used logarithms fairly intuitively where they were never properly explained to me. I just knew the formula for entropy calculation (log(possibilities)/log(2)) by heart and managed to make something that converts a number from any base into any base (e.g. base 13 to base 19). I can do math, just nobody bothered to tell me about the fancy symbols. To me, the symbols mainly seek to obfuscate, look smart, and ensure job security.

<comment><USER15> Pretty much every math textbook I've read has defined the notational conventions early on.

(I'm not saying this is the case with every math text, just the ones I've read that are intended to teach the reader the subject.)

I see all these comments about reading papers with confusion and I get the impression that they didn't read the prerequisite information from textbooks for whom they're the right audience as that's generally how you pick up notation.

</comment></comment></comment><comment><USER16> I've taken reasonably advanced math courses (I was, for a time, a math major), and I have a great deal of difficulty with machine learning papers. They often reference domain-specific formulas that are prerequisites, sometimes without naming them, and rarely does a paper actually define every symbol used in a formula (in fact, I don't think I've ever seen a paper do this - it's usually none, and they only define a few elements of the notation). The worst part is that they'll use a known formula, but change the notation slightly without explaining why.

These are bad academic habits. If you're using a formula with a dozen variables - at least state what they are, as well as any more unusual or overloaded notation, subscripts, etc. If you're using a formula from elsewhere, it's better to restate what these symbols mean in your paper, rather than send the reader off on a hunt. Be clear, be explicit, leave no doubt. You don't have to explain all of probability theory, but it takes only a line or two to vastly improve the readability of your paper.

<comment><USER17> Machine learning papers are a particularly toxic brew of people in a rush, who like to show off, and who spend all day fiddling with code & little time reading or writing mathematics. Lots of formulas for quite simple things are at best ambiguous and at worst simply incorrect.

</comment></comment><comment><USER18> My recommendation is to focus on these two items and ignore everything else until then:

1) Logical quantifiers: ∃ ("there exists") and ∀ ("for all"). Quantifiers can get confusing when they get strung together. I like to think of them as challenge-response games. For example, your real analysis textbook asserts that a function f is continuous at x if ∀ e>0, ∃ d>0 such that if |x0-x|<d, then |f(x0)-f(x)|<e. I think of two players, Ella and Daniel, with the ∀ player (Ella) trying to _disprove_ and the ∃ player (Daniel) trying to _prove_ the statement. Since the definition asserts "∀ e>0", all Ella needs is a single counterexample e' such that no matter what d'>0 Daniel chooses, the condition is false. Or mathematically written, Ella's objective is to prove "∃ e'>0 such that ∀ d'>0, the condition doesn't hold." Notice how taking the converse flips the quantifiers.

2) Set notation: S = { x∈R | 0<x<1 } reads as "S is the set of real numbers that are between 0 and 1". You can also think of this as {x ∈ domain | filter_condition(x,y,z,...)}. You'll see many mathematical objects represented as sets, so it's pretty important to know how sets are defined.

<comment><USER19> >challenge-response games

This is standardly called "game-theoretic semantics" in the literature. Enthusiasts can find more info here (or just by Googling around): [https://plato.stanford.edu/entries/logic- games/#SemGam](https://plato.stanford.edu/entries/logic-games/#SemGam)

</comment></comment><comment><USER20> From outside, one might think that the notation is universal and unchanging, nothing could be further from the truth: each field has its own take, its own conventions. One even finds groups within a field who "go their own way", and there are national differences too. Sorry.

Realistically, find a paper that interests you, hopefully they will list some expository text in the references (or a paper that they cite does). Get it and read it. There's not really any alternative if you want to understand the notation, it represents complex ideas compactly, so you need at least a basic grounding in those ideas.

</comment><comment><USER21> [https://en.wikipedia.org/wiki/List_of_logic_symbols](https://en.wikipedia.org/wiki/List_of_logic_symbols)

[https://en.wikipedia.org/wiki/Table_of_mathematical_symbols](https://en.wikipedia.org/wiki/Table_of_mathematical_symbols)

These might help a bit.

But as someone with similar problems, I'm beginning to think there's no real solution other than thousands of hours of studying.

<comment><USER22> "There is no Royal Road to Geometry." \-- Euclid

I've spent time studying number theory (Ph.D. Berkeley, wrote 30+ papers and 3 books), and it really is very deep. If understanding some notation or mathematics doesn't come easily to you, that's normal. It often takes Ph.D. students years of fulltime study just to understand a single research paper. This is because mathematics is a very deep subject, certainly much deeper than everything else I've encountered in academia. The good part is that pretty much all mathematics does make sense, and can be truly 100% understood if you're willing to invest enough time, unlike the case with many other things in life! An added bonus is that much of mathematics is also incredibly beautiful, when you understand it.

Listening to lectures by excellent speakers (many are on youtube now) helps a lot.

<comment><USER23> > pretty much all mathematics does make sense, and can be truly 100% > understood if you're willing to invest enough time

Inter-universal Teichmüller theory seems to be a counter-example.

<comment><USER22> To me it is an example, not a counterexample, because the IUT papers have been completely understood and judged to be incorrect by recent fields medalist Peter Scholze (and several other top mathematicians).

</comment></comment></comment></comment><comment><USER24> I recently wrote an article called "So You Want To Get Into Theoretical Computer Science," which is mostly about how to read a bunch of papers to figure out some obscure, heretofore unimplemented (outside of academia) algorithm.

The biggest challenge was reading the mathematical notation, to whit: the four biggest papers in the field I was studying used _four different_ notations, and that you'll end up writing your own translation guide:

[https://elfsternberg.com/2018/10/27/so-you-want-to-get- into-...](https://elfsternberg.com/2018/10/27/so-you-want-to-get-into- theoretical-computer-science/)

</comment><comment><USER25> I don't know of any easy way to learn to do this from the outside without coming up through the ranks (as it were). The only thing I can suggest is to get a few examples, and ask some friends, colleagues, or on-line forums what they mean. Pick one or two, and ask in different places. The level of assistance you can get from a well asked question in the right place can be extraordinary.

But be aware that mathematical notation is not, without context, unambiguous. So you might need to provide some context for what you're doing, or where you get the examples from. Some people think this is a weakness of mathematical notation to be solved, but I've found it tremendously powerful. There is no doubt, however, that it is an accidental barrier to entry.

So post a picture of a piece of notation, and maybe someone will either explain it, or point you at a book/website that you can read.

<comment><AUTHOR> Ah, I see, so it's just a matter of reading something, not understanding it, figuring out what it means and learning from that rather than there being a place where I can specifically read up on it.

I guess I just need more practice.

<comment><USER25> > _... so it 's just a matter of reading something, not understanding it, > figuring out what it means and learning from that rather than there being a > place where I can specifically read up on it._

Not entirely ... but partially. That's one way you can start to learn. Usually formulas are presented with a broad gloss in English (or other) to let you know roughly what it is saying, with the formula just being a precise way of saying it that can subsequently be used in algebraic manipulations.

Example:

The force due to the Earth's gravity is represented by _g_ at the surface, and falls off as an inverse square. Thus:

F_d = g(R/d)^2

where R is the radius of the Earth.

</comment></comment></comment><comment><USER26> I think "mathematical maturity" is an important aspect of this discussion. Mathematical maturity is basically the ability to read a paper or textbook without assistance. It takes years to develop, and you still have to be familiar with the topic! For example, I feel comfortable reading statistics papers, but I would be totally lost reading number theory. As others have commented, familiarity with the foundational ideas is just as important as the notation.

So how do you get mathematical maturity? A bachelor's in math, or equivalent. Meaning, approximately 4 years of focused, ideally guided, practice. I don't think there are any faster ways.

Edit: Also important to know: most papers are poorly written, so that definitely doesn't help. It's especially important early on to identify who the leaders are in a field, and focus on their writings. In statistical Machine Learning, I recommend anything by Trevor Hastie, Rob Tibshirani, Bradley Efron, and Martin Wainwright.

</comment><comment><USER27> Understanding the notation is only the first little step in understanding the underlying principles. There are a lot of machine learning books/classes that will cover the underlying principles you need to understand what's covered in the book. Exactly which one to recommend depends on your background, but Andrew Ng's Coursera Course [1] has been a staple for people without a lot of math background.

[1] [https://www.coursera.org/learn/machine- learning?authMode=log...](https://www.coursera.org/learn/machine- learning?authMode=login)

<comment><USER28> Ng's Coursera course will teach you what happens in Deep Learning and Machine Learning, but at least the Deep Learning course is very very light on the math side and avoids scary mathematics rather than making it accessible.

Without having read it, I'd recommend the "preliminary maths" part of Bengio et al's Deep Learning book - it teaches both the letters and the language, so to speak, and if the language isn't for you, you'd better throw away the papers and completely concentrate on reading and understanding the implementations that are our there, using the implementation first and foremost and the paper only as a backup to provide explanations when the implementation does mysterious or unexplained things.

You can do deep learning productively without having a PhD, but you won't be able (nor obliged) to read and understand PhD-level academic papers unless you have a solid (i.e., maths or physics or math-rich CS BSc) maths background.

</comment></comment><comment><USER29> Well... perseverance is the name of the game.

The secret to reading papers in unfamiliar field is to not get discouraged just because you don't get it immediately. Instead, I will research each concept I encounter that I don't understand well.

Let's assume I want to understand something in a field I am not familiar with. It is important to understand that this typically means I have to get at least somewhat familiar with the field. I don't expect to read a paper and get it just from that single read!

I will open the paper and first just read what I can from start to end without stopping to research anything. This gives me some idea what the paper is about and what are some of the concepts that are important and how they are used later. I call this scanning.

I will go back to the start and slowly go researching EVERYTHING, ABSOLUTELY EVERYTHING that I don't understand. This is most of the work. I will keep the paper open and have something to mark where I currently am. I will research meaning of every symbol and every piece of notation, every concept being introduced, until I am confident I understand it.

This may take multiple days to advance a single line as I will frequently spend time on tagents or just getting up to speed with the basics.

Once I go through entire paper I will get back to start and now read it again. Now that I know the language of the paper I can focus on the matter at hand. I may do this few times until I am satisfied I got everything I could.

Again, I want to stress it, don't expect to understand a paper in unfamiliar field on the first reading. It is completely unrealistic. Use materials, ask people to explain, research on the Internet, rinse and repeat.

</comment><comment> jg-prog [https://github.com/Jam3/math-as-code](https://github.com/Jam3/math-as-code)

this might be a start for you

<comment><USER30> Nice, thanks. Do you know if any math textbooks have been translated into code notation?

</comment></comment><comment><USER31> Frankly, I don't think you can without it being specific to the field you're learning. That's why having a symbolic reference is always amazingly helpful in textbooks.

For example, the lowercase sigma symbol is used for a half-dozen different things depending on the field you're working in.

In Machine learning, if you use a logistic function as your activation function you'll use the lowercase sigma symbol to represent the sigmoid variable. However if you're working in Physics, the lowercase sigma symbol is the Stefan-Boltzmann Constant. So any good text or otherwise will explicate what the function symbols represent.

Some algebraic/calculus functions such as sum over set, divisor, sets etc...should be the same, and I haven't been able to learn how to crack that specific question as to generalizing all of those operations that isn't "go back to get a mathematics degree."

[1] [https://en.wikipedia.org/wiki/Activation_function](https://en.wikipedia.org/wiki/Activation_function)

[2] [https://en.wikipedia.org/wiki/Stefan%E2%80%93Boltzmann_const...](https://en.wikipedia.org/wiki/Stefan%E2%80%93Boltzmann_constant)

</comment><comment> daniel-levin I think the lazy and somewhat cynical answer is also the most accurate: learn the mathematics.

<comment><USER32> Indeed. I was thinking that the question is in some ways like asking "How can I understand the chemical symbols used in these equations". One could perhaps memorise that 'Na' is Sodium and H is Hydrogen but without knowing what they are and how they behave etc. an equation in isolation is meaningless and won't help to understand the reaction.

</comment></comment><comment><USER33> There's a long version and a short version. The long version is you have to learn to write mathematics by yourself. Start with an intro course and start deriving theorems by yourself. Do not look at the proofs. At this stage, details are very important and can't be overlooked. You need to be your own critic and keep asking why and how to every single detail and step until you can convince yourself that you would be able to naturally come up with the theorem and proof. Continue doing this to higher level courses. This is how I learned Math since middle school all the way throughout graduate school.

The short version is you have to ask the right questions. Naturally for every theorem or equation, there are 3 big questions:

1) What does the theorem/equation say? What's the intuition behind it?

2) Why is it true?

3) How does one come up with it?

One must ask these questions in the exact order. To understand what the equation really means, you should break it down further to smaller components. What is this variable? What does it represent? What is the intuition behind what it represents? What's the implication when the variable increases, decreases, etc? Do that for every single component in the equation/theorem. One should fully understand the intuition and clearly describe all quantities before trying to look at the equation/theorem as a whole.

To understand why an equation/theorem is true you need to build up a repertoire of theorems related to the quantities of interest. The bigger your repertoire, the easier you can prove or disprove something. The more advanced way is to build up intuition around the quantities of interest then come up with intuitive hypotheses. The hypotheses are often easier to prove/disprove. The process repeats.

<comment><USER34> This answer matches my experiences very closely. When you feel you brain begging you to gloss over the equation and move on - that's a red flag that you need to slow down, exercise discipline over your concentration, and figure out what's going on. It might take a few days for the intuition to settle. Personally I've known it to take a couple of years.

edit: patience, self-forgiveness, and a willingness to accept frustration are important traits. You might spend a whole week banging your head against the wall, feeling like you're making no progress, and then one day everything falls beautifully into place. That doesn't mean you did something correctly on the final day - it means you did everything correctly for the whole week before. Don't view a difficult and unrewarding day as wasted time. You're building something very difficult and that takes a bewildering amount of time.

</comment></comment><comment><USER35> While there is usually some notation that is implicit, and where the meaning depends on the particular field, most papers should explicitly define their notation.

Are you sure it's a problem of notation, and not just that you're not used to reading slowly? Reading academic papers is very different from reading prose, and I find that even though you might struggle understanding it at first read, going through it line by line very slowly does help a lot.

Do you have an example paper you're struggling with?

<comment><USER36> Not OP, but in my experience experts everywhere have a blind eye to the conventions they are so used to that they end up skipping giving a definition for them them.

</comment></comment><comment><USER37> I run into the same problem, am much better at understanding maths stated as code than in mathematical notation.

3blue1brown's animated maths channel is pretty good. - [https://www.3blue1brown.com/](https://www.3blue1brown.com/)

Khan Academy's maths section covers a lot of stuff - [https://www.khanacademy.org/math](https://www.khanacademy.org/math)

math.stackexchange is excellent for specific questions - [https://math.stackexchange.com/](https://math.stackexchange.com/)

One thing that works for me is to try and find something stated both in code and in maths notation, then you can work out one from the other.

<comment><USER38> I always wondered why math notation hasn't been replaced by code.

While math notations can be interpreted in different ways, code is going to give an unambiguous result.

Why don't mathematicians, especially those writing in machine learning or computer science domains, do this? Is it just a problem of agreeing on a common language?

<comment><USER39> You mean, "Why don't they use a language you understand, instead of one you don't?"... Why expect they should?

I don't think _math notations can be interpreted in different ways_ usually is right. That would defeat the purpose of using them, if the meaning wasn't exactly clear. And maths notation is more compact, a lot more. Even assuming a translation between the 2 always is possible or makes sense.

<comment><USER40> If math notation was unambiguous, automatic theorem provers would take that as input instead of inventing their own languages.

</comment></comment></comment></comment><comment><USER41> I'm also interested in this topic, here you can read some interesting stuff:

"Links to resources talking about how to understand mathematics, mathematical language and mathematical notation."

[https://github.com/nbro/understanding- math](https://github.com/nbro/understanding-math)

</comment><comment><USER42> Have you tried using a tool like Anki? Previous discussion: [https://news.ycombinator.com/item?id=17846356](https://news.ycombinator.com/item?id=17846356)

<comment><USER25> While I agree that the "Spaced Repetition" technique is phenomenally powerful - I've used it to memorise Ozymandias, the entire periodic table, English Regnal dates, and more - there is very little point in memorising what the symbol "is" (that's a signum, that's a small delta) because what a symbol "means" changes from discipline to disciple, paper to paper, and author to author.

</comment></comment><comment><USER43> Many papers are just badly written. I've lost count of the number of times I've been reading formula when the author suddenly starts using terms that are not defined in the paper.

Okay, if you're reading a physics paper and you encounter 'c', that's probably the speed of light, 'm' is likely mass, and so on. There's context and culture involved, and that's usually fine.

But if you're wading through something less mainstream, say some denotational semantics or queuing theory, and the author starts dragging in undefined alphabet soup, what's the reader supposed to do? Sometimes the answer is to get more culture in the subject area, or read some of the same author's previous papers, or just forge ahead in the paper and hope that understanding will come anyway.

Don't get me started on formula that use single character variables nearly everywhere, but have zingers like 'hz' \-- which is not 'h' times 'z', but Hertz. If math is supposed to be so rigorous, how come there's no agreed upon grammar, with reasonable ways to extend it to specialized domains?

</comment><comment><USER44> I was similarly stumped, specifically regarding discrete mathematics not too long ago. I was interested in reading Lamport's Specifying Systems[0] but felt I lacked some requisite background knowledge[1]. I ended up picking up Stavely's Programming and Mathematical Thinking[2] which I enjoyed.

While I would recommend either as a primer into discrete math - do you have a specific subset that you're interested in? That might make suggestions more pertinent to your interests.

[0]: [https://lamport.azurewebsites.net/tla/book.html](https://lamport.azurewebsites.net/tla/book.html)

[1]: I think, in retrospect, that Specifying Systems actually stands on its own pretty well and doesn't require supplementary material when paired with the video course.

[2]: It is subtitled "A Gentle Introduction to Discrete Math Featuring Python" and it is _very_ gentle, but I'm also glad to have read it, it did wonders for giving me a kind of reference into math terms from programming (which I already knew).

</comment><comment><USER45> I was just like you. Here's what I did.

1\. Picked up a High School Algebra Book. Read from beginning to end and did all exercises.

2\. Repeat #1 for Algebra 2, Statistics, Geometry and Calculus. (Really helpful for learning those topics fast was Khan Academy).

3\. Did MIT Opencourseware's Calculus and Linear Algebra Courses w/the books and exercises.

Now, this took me about 2 years maybe you can get it done quicker, you're at a level where you can pretty much pick up any book, I think I picked up Elements of Statistical Learning, and actually start parsing and understanding what the formulas mean.

One thing I always do is tear apart formulas and equations and play with little parts of them to see how the parts interact with one another and behave under specific conditions, this has really helped my understanding of all kinds of concepts from Pearson's R to Softmax.

</comment><comment><USER46> Since you say you know how to code:

[https://github.com/Jam3/math-as-code](https://github.com/Jam3/math-as-code)

You are welcome.

<comment><USER47> Woah, this is good.

Math is super expressive compared to actual code. It's like SQL compared to an ORM like notation.

</comment></comment><comment><USER48> Or you can have syntax highlighting in your brain, like Feynman: [https://en.wikipedia.org/wiki/List_of_people_with_synesthesi...](https://en.wikipedia.org/wiki/List_of_people_with_synesthesia#Richard_Feynman)

</comment><comment><USER49> I don't think it's possible to learn "mathematical notation", as a thing. This is like asking "how can I learn human language".

There's different notation per field and subfield but I would argue that the process of figuring out notation per example or per paper is generalisable and not too difficult:

\- identify the field of the paper; keywords, general categorisation, etc.

\- take an example and break the notation into parts

\- Google each of the parts independently alongside field keywords (results of this search should also give you some contextual info alongside each component which should help your knowledge)

\- compile the aggregate of your research

\- reread the paper and see if your understanding has improved

\- repeat

\- try another paper in the same field

</comment><comment><USER50> This used to stump me, but I went through the Cal1/2/3 series at a local university and it made reading ML papers much easier, you could try attending a local school if self-learning is proving too time consuming for you.

</comment><comment><USER51> 1\. Try to get a mentor.

During my time as a PhD student in philosophy, I had the luck of having a mathematician and physicist turned philosopher as my supervisor. He helped me a lot in understanding notation and improving my own mathematical writing style (~ getting silly notation ideas playing around with LaTeX out of my head).

Notation heavily relied on conventions and these differ from field to field. Mathematicians are usually very clear and define everything. They have to be easy to understand, because what they are talking about gets very complicated very fast. Unfortunately, in other areas like logic-oriented theoretical CS there is an unhealthy focus on 'notational precision' (plus shortcuts, making things worse) rather than being understood that can make papers rather incomprehensible at first.

2\. Look for textbooks with good mathematical prose.

Get some recommendations. Some good introductory books are relatively short, self-contained, define everything, and avoid symbols in favor of English in many places. Try to get one of those in the area you're interested in.

3\. Check your reading style. (kind of obvious advice that is often given, but maybe still helpful)

You may be reading the texts in the wrong way. I did that very often and occasionally still do. Reading a mathematical text takes way more time than any other text and requires active participation. Do the exercises and stop every so often to check your understanding. Constantly use pen and paper and check everything. Draw diagrams.

</comment><comment><USER52> I'm still learning mathematics (I don't think the learning phase ends). I used to worry about "reading" notation. I think what's changed is that I have gotten used to not understanding unfamiliar notation. And I realize that if the notation appears unfamiliar, the mathematics may also be unfamiliar. Being able to "grok" notated mathematics is much more about understanding the mathematics than about being able to read notation.

Therefore I would be cautious about jumping to the conclusion that your problem is as simple as "simply cannot read" (unfamiliar notation). Maybe that's true in some cases, but it's also likely that the notation stands in as a kind of shorthand for elaborate, maybe even arcane, concepts that you don't understand very well (unfamiliar mathematics). Working out which concepts/theories you need to study may be a better place to start than worrying about the notation per-se. Eventually you'll drill down to some level where you do understand the notation, or it is explained in a way that you can understand. Also consider that learning to read and write go hand in hand -- reading a notation gets much easier once you start writing your own sentences in the same notation (e.g. do exercises, learn to write proofs.)

With few exceptions, don't expect the notation in one area to be useful, or to mean the same thing, in another area. However there are a couple of generally useful things to know: (1) Greek letter names (so you can recognize, write and pronounce them without being confused) -- just learn the ones that show up in your reading, and (2) set theory notation plus some basic set theory (read Halmos' Naive Set Theory book up to the point that it becomes confusing).

Others have mentioned it, but be aware that it is common for one field to have multiple notation conventions. Often the notations originate from seminal papers or widely used books. Different authors frequently use slightly different notation, even within the same field, and sometimes a single paper may contain multiple contradictory notations. I've even had lecturers who switch notation half way through a lecture. If you're studying multiple texts you may want to translate all of the key theory into one consistent notation -- but at a minimum you need to be able to keep track of the correspondence between the different notations as you're reading.

</comment><comment><USER53> I've been eyeing this book to help bridge some gaps in the same area for me: [https://amzn.to/2OZUIlE](https://amzn.to/2OZUIlE) It talks more fully about mathematical proofs in general, but it gives a really good introduction to the notation and such in a much more compact space than most other ones I've seen.

</comment><comment><USER54> Mathematical notation is not anything magical and mostly there to allow for easy discussion. Also equations are only a small part of notation and words and definitions are much more important, e.g. "isomorphism".

Since mathematics is abstract anything used necessarily has be precisely defined. Thus, the best way to learn mathematical notation is to get some beginner level rigorous mathematics book for mathematicians, e.g. Rudin's real analysis or Lang's Linear Algebra, and read through chapter 0 and 1. Books like these tend to start entirely from scratch: What is a number? What does '+' mean? What is a sum symbol?

While each field tends to have some further notation, that is often explained within the paper or in standard references and you should be able to read mostly everything after reading up on basic notation sections in analysis, linear algebra and maybe category theory.

</comment><comment><USER55> The following is a decent and reasonably priced reference:

"Mathematical Notation: A Guide for Engineers and Scientists"

[https://www.amazon.com/Mathematical-Notation-Guide- Engineers...](https://www.amazon.com/Mathematical-Notation-Guide-Engineers- Scientists/dp/1466230525)

</comment><comment><USER56> Read this book : [https://www.amazon.com/Mathematical-Methods-Linguistics- Stud...](https://www.amazon.com/Mathematical-Methods-Linguistics-Studies- Philosophy/dp/9027722455)

</comment><comment><USER57> I'm going through the books - 1.How to Prove It: A Structured Approach; 2.Mathematical Proofs: A Transition to Advanced Mathematics The are very different books on how to read/write proofs, but complement each other nicely. On top of that, I'm doing though few elementary logic and set theory books, they also have what I would call "barebone proofs", since logic/set theory don't even deal with numbers. My goal a very different from yours, in my case I want to learn real and complex analysis and move to quantum physics, but nevertheless, two books mentioned above are helping me a lot.

</comment><comment><USER58> Some things that help me a lot, in order of helpfulness (for me):

* Read formulae aloud, using natural languages for symbol names (it is not "sigma of k from i to j", it is a "summation of terms with k from i to j").

* Look at the proofs/construction of these formula and understand them.

* Look at translations of the formulae (applied physics textbooks, more often program code); sometimes it helps to work your way back to the formula from a starting point you are more comfortable with.

* Understand that making up symbol meanings ad hoc is one of the perks of mathematicians - you can find fights within a single math department on how notation should be.

</comment><comment><USER59> [https://www.khanacademy.org](https://www.khanacademy.org) is a good place to start. Otherwise, you can take a look here [https://en.wikipedia.org/wiki/List_of_mathematical_symbols](https://en.wikipedia.org/wiki/List_of_mathematical_symbols). There are free calculus courses available on [https://coursera.org](https://coursera.org) that you can start on, otherwise a local introductory math program might be available to you?

</comment><comment><USER60> The real problem is people who understand machine learning don't know how to describe it in terms of anything except math. You don't really need math to do it just like you don't need math to understand neurons or how they function. Every concept in machine learning can be demonstrated in simple programming without any math. Why it is not is because most people who are doing it at the experimental level are at a university and they don't start learning it until they already have a tremendous math background but to say it requires math is ridiculous

</comment><comment><USER61> You have to spend time to build your mathematical foundations. You have to get familiar with it through problems and exercises. I don't think there are shortcuts.

If you don't have the foundations it's wasteful to spend time trying to work out academic papers and such. Bite the bullet and start from the beginning, it'll pay off over time. It will also allow you to go much farther. Even if you manage to 'understand' what a paper is saying, without the background you won't be able to do much other than replicate it.

</comment><comment><USER62> Hard to answer without knowledge of prior background or exposure that you might have.

As a rule of thumb, I would advise to start with elementary linear algebra, statistics, and probability. Edit: As pointed out by a reply comment, these require a good grasp of calculus.

Notation is only syntactic, most importantly you want to understand the _semantics_ (i.e the significance of the construction your are studying). To achieve this, you need to do the proper background work and the rest will follow naturally.

<comment><USER63> This. I mean you can google stuff like "what does the curly L mean" and it would tell you that it's a Lie derivative, but that wouldn't mean much to you unless you understood that it did.

So you need to understand the work and the math behind it and you will get an idea about the notations used. Not the other way round.

</comment></comment><comment><USER64> I recommend you read this article about how to learn CS and become a computer scientist or machine learning expert, from 0 ground.

In the article, author recommend u have to have a very strong knowledge base of math, statistics, probability, and linear algebra in order to read those things.

[https://www.afternerd.com/blog/learn-computer- science/](https://www.afternerd.com/blog/learn-computer-science/)

</comment><comment><USER65> my advice is learn haskell of youre a programmer.

haskell helped me think of math as a game of pacman, i understood arity, the concept of "well defined" as ADTs and FOLDs, tail recursion helps understand series.

learn you a haskell is a better math book than it is a haskell book.

i had extreme sifficulty with math, mainly because my temporal lobe is more or less mush due to MS.

then all you have to do is substitute symbols.

oh and the #haskell channel on freenode is huge and VERY helpful.

Sent from my iPhone

</comment><comment><USER66> I recommend you to have a look at "Hand Book for spoken Mathematics"

[http://web.efzg.hr/dok/MAT/vkojic/Larrys_speakeasy.pdf](http://web.efzg.hr/dok/MAT/vkojic/Larrys_speakeasy.pdf)

</comment><comment><USER67> The first few chapters of [https://courses.csail.mit.edu/6.042/spring17/mcs.pdf](https://courses.csail.mit.edu/6.042/spring17/mcs.pdf) provides some good pointers on notation.

</comment><comment><USER7> > _How do you learn to read this stuff?_

You learn while studying math. There is no way around it.

</comment><comment><USER68> Other people have listed great books and resources.

What I don't see, however, is to ask a friend. Find someone who is familiar with the notation, if not the material, and ask questions. You'll likely get a more clear answer.

<comment><USER25> You say:

> _What I don 't see, however, is to ask a friend._

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

> _... get a few examples, and ask some friends, colleagues, or on-line forums > ..._

<comment><USER68> My bad. Guess I didn't see it.

</comment></comment></comment><comment><USER69> Perhaps Khan Academy could be useful? [https://www.khanacademy.org/](https://www.khanacademy.org/)

</comment><comment><USER70> To me it's exactly the same as learning to work with an unfamiliar code base.

Just pick some small part of it and start tracing back until you find definitions.

<comment><USER60> Yea except you are supposed to compile it and run each line and iteration in your head

</comment></comment><comment><USER71> For maths and machine learning, Khan Academy and Coursera can get you somewhere.

</comment><comment><USER34> Could you give some examples of notation that you struggled to understand, and explain what about it you find confusing?

One difficulty of notation is that the hierarchy of abstraction builds dizzyingly quickly, and soon you're manipulating symbols that generalise a whole classes of structures that were themselves originally defined in terms of lower-level abstractions. When this becomes overwhelming, it usually means that I didn't give my understanding of the lower levels long enough to settle and mature.

Concise notation and terminology is only useful if the underlying ideas are organised neatly in your mind, and the best way I've found of achieving this is to study a subject obsessively for some time, then put it away for a few weeks, and then go back and try to see the big picture and find out where it doesn't fit together by trying to derive the main results from scratch. Then I start again and fill in the blanks. After a few years things begin to make sense, but this process takes time and it's difficult and tiring (or at least that has been my experience of it).

In order to read research papers fruitfully it's crucial that you understand the basics well, and the best way to do that is to work through books aimed at undergraduates or young graduates. People don't read foreign literature by jumping straight in and looking up every word and every grammatical construction as they go. They become familiar enough with the language by reading easier texts until the language is no longer an obstruction - <USER2> they're free to appreciate what's happening at a higher level. The same for driving: you wait until you're comfortable operating the car mechanically before you drive on busy roads. The same, also, for mathematics.

It is not at all unusual to to find notation and technical terminology tiring. Everyone does to some extent. I hate it. But it's necessary.

Some resources I found useful:

Naive Set Theory by Paul Halmos. One of the great mathematical expositors, Paul Halmos here describes the fundamental language of mathematics: set theory. This is a book for people who want to understand enough set theory to do other parts of mathematics without obstacle.

How to Prove It by Daniel Vellemen. A nice introduction to logical notation and common proof structures, aimed at helping incoming maths students to become comfortable with the basics of formal language and notation.

Anything by John Stillwell. Stillwell is an inspiring teacher who insists on including the practical and historical motivations for the abstractions we use (this is, sadly, rare for modern teachers of mathematics). If you find yourself wondering why people cared about a problem enough to solve it, Stillwell might be able to help.

I suspect you'll also need resources on linear algebra (Halmos has 'Finite Dimensional Vector Spaces') and analysis but I'm not sure as I don't work in machine learning. I just sort of learnt linear algebra as I went and I avoid analysis as much as a supposed mathematician can. (context: my undergraduate degree was in economics and didn't carry much mathematical content other than some basic linear algebra - now I'm a graduate student in mathematics and computer science who uses a lot of category theory and abstract algebra. The transition was painful. Really painful.)

</comment><comment><USER72> I love how there are these two parallel threads going in HNville: (1) COLLEGE SUCKS BURN IT DOWN and (2) "I'd like to learn complex things like machine learning and math that take more than reading 5 blog posts to master, how do I do it"?

Sometimes this place just cracks me up.

I honestly think the answer is pretty simple: go to college. It doesn't have to be expensive. Take a community college course in calculus or undergraduate- level probability. Skip the gen eds and don't worry about the degree if you want to learn something narrow like this.

In any case, just find a mentor. On-the-job if you can, otherwise pay for a class.

What you shouldn't do is try to self-study by reading a book. You can perhaps do this but only if you're smarter than average and more motivated than most. Since you probably aren't, just take a class. Night school, maybe a MOOC. Preferably something heavy on analysis or proofs.

But you should do it with others. Math is a very social discipline, it's good to be able to discuss and have partners to work through things when you get stuck. And if you're like me, you WILL get stuck on things. This stuff is _hard_.

Another thought: this whole "college is great"/"college is terrible" dichotomy seems to occur people people don't think enough about quality. I think bad colleges are terrible and great ones are fantastic. I don't know any way I'd have learned all the complex topics in math, stats, probability, etc., I did without attending a big 10 engineering school (UIUC in my case)

<comment><USER73> >What you shouldn't do is try to self-study by reading a book.

My experience has been that this is exactly how college math works; you pay for self-study. The professor reads directly out of a book (in poor English), or off of pre-made slides provided with the book, for 2-4 hours per week, and then you are left to do the problems from the book on your own time.

Class populations are so large that if everyone had asked clarifying questions, we wouldn't have completed the readings.

If your college experience was different I'm envious of that.

Edit: as a fun side-note, our calc professor was well known for taking up the entire class to draw out a single proof on the chalkboard. As the chalkboard got full, he would incidentally erase his previous writing with his giant belly as he putzed across the room.

<comment><USER74> There are other benefits beyond being able to ask questions.

Tests and deadlines provide motivation to do the actual work.

Having a curriculum means that the content is laid out in a logical order that the professor believes should be achievable.

There is a stupid amount of information out there. Breaking it down into a progression that students can follow in order to learn and understand it is incredibly important.

If you're motivated enough then sure maybe you can just buy and read the textbook, although sometimes professors deviate from that when it's wrong.

> Class populations are so large that if everyone had asked clarifying > questions, we wouldn't have completed the readings.

Good thing not everybody asks, and those that do ask are generally asking questions shared by a good chunk of the class.

<comment><USER75> > _Tests and deadlines provide motivation to do the actual work._

This is so true in my experience. As a young man I could listen to the lecture and say "Yeah, yeah, I got this." and then try to work the homework problems and realize that no, I didn't really understand it. It is hard to force yourself to do the work if you don't have a negative externality for not doing it.

</comment></comment></comment></comment><comment><USER76> irc/freenode

/j #math

<comment><USER65> hood advice if youre masochistic. expect to be called names and made to feel stupid.

but in their defense, i was a difficult student.

</comment></comment><comment><USER77> here's a dirty seceret: we (people that have mathematical training) don't read the notation very closely either. it's very much like reading code: i don't look very closely unless there's a pattern i don't recognize or one that's broken. so ironically reading notation is about ignoring notation :) the problem for you is that you simply haven't had enough exposure to know what the "patterns" are and hence don't have them chunked/mapped efficiently. unfortunately there's no "royal road" here and you simply have learn to enough math to know what these things are but i encourage you to skip notation that isn't intelligible and continue reading. having done that enough times you will eventually actually understand the notation.

<comment><USER78> I was a college math major, and I can't read math the way I can read text or even sheet music. I familiarized myself sufficiently by writing out my own derivations and treating the textbook as a reference while working the problems. The act of writing the stuff out and manipulating it with my hands is how I learned it.

<comment><USER79> I think that's how everybody does it with stuff that's new to them.

After enough slow progress ("one page per day" can easily be speed reading), parts of what you are reading become what mathematicians call 'trivial', and your reading speed of similar texts increases.

I think there's an analogy with 'reading' a chess position. If you watch the ongoing Carlson-Caruana match on [https://youtube.com/watch?v=DgvqBjrusIA](https://youtube.com/watch?v=DgvqBjrusIA), you'll notice that the commenters can easily go through three or four variants in a minute, and call one position an obvious draw, another clearly winning, etc. The reason they can do that is that they have looked at thousands of similar positions, and remember the essential parts of them.

</comment></comment></comment><comment><USER80> This is the beguiling thing about mathematics: it is right there on the page in front of you, yet often so far from your grasp. How could a statement said so simply as "a^n + b^n = c^n has no solutions for n > 2" be so difficult to reason about? This duality of having something and not having it is something I've only experienced in mathematics and bad relationships.

It's not about understanding the notation, as others have said, it's about understanding the principles expressed by the notation. You may learn the grammar of a language, but that is a far journey from understanding its poetry, which is full of norms and views beyond what is captured by its grammar.</comment>


Coding Horror: The Gamification - <AUTHOR> http://www.codinghorror.com/blog/2011/10/the-gamification.html <comment><USER2> I have found the gamification of Hacker News to be detrimental to my experience. Insightful but unpopular comments end up getting buried by retreads of the status quo. It's the tragedy of the commons: if every single person can upvote, the most-upvoted comment will be the one which appeals to every single person.

I prefer the threaded discussion style of kuro5hin back in the day where comments might be upvoted, but they stayed in the same temporal order they were posted in.

<comment><USER3> Personally, I tend to want to respond to an article or discussion with whatever thought I'm having at the moment. The HN karma (in particular, the average) reminds me to try to filter my comments based on whether I'm saying something that I think others will find useful or whether I'm just saying it because I feel like saying it. I probably censor about half of what I would otherwise post based on this guideline, and it's nearly always to the betterment of my signal/noise ratio.

<comment><USER2> I find myself willing to spend more time/thought crafting a response to an article which I think will be read by more people. For example, I'm just pounding this out stream-of-consciousness style since I know it will only be read by those involved in this subthread, if that. Why not do the right thing and focus on thoughtful, well-written comments for their own sake? Because I have the karma carrot dangling in front of me. I feel like gamification has in this case removed my motivation to do what is most beneficial to the site.

</comment></comment></comment><comment><USER4> About 2 years ago, I was looking at a forum that looked like the one pictured and thought, "Why would anyone let this happen to their forum?"

Signatures started as a way to putting personality into your post, and they still are, but it's gone way overboard. Many forums put a reasonable limit on that stuff now. 2 lines, 100 characters, etc.

I never looked at StackExchange as a solution to that, though. Forums were for everything from chatting to problem solving, and are usually conveniently divided for such. StackExchange is just for problem solving.

</comment><comment><USER5> > Based on the original size of those screenshots, only 18 percent of that > forum thread page is content. The other 82 percent is lost to signatures, > avatars, UI doohickeys, and other web forum frippery that has somehow become > accepted as "the way things are done".

Avatars are a quick and easy way to identify an author - and that in itself carries quite a bit of information. (I'd trust someone I knew to be a mechanic to post valid repair advice, vs. someone who posts all the time about their car breaking because of dumb things they did.)

<comment><USER6> I noticed something interesting on Reddit. I recently installed the Reddit Enhancement Suite extension for my browser. One of the features is that it displays next to a user's name above their comment the sum of +/- 1 votes I have given them. It also colors them based on their distance from 0 (or something similar to this). Suddenly I find myself reading comments differently based on whether they a strong positive or negative rating _from me_. I worried a little when I found myself upvoting a comment that was made by a very common poster on the site, and I realized it was the sort of stupid joke that doesn't contribute to the discussion that I would normally down- vote.

The reputation the user had with me caused me to give their posts the benefit of the doubt. It was a very odd experience.

On HN, I almost never read the name of the person who posted something until I am about to vote on it. I enjoy trying to evaluate a post on its contribution to the topic, and not on the authority or popularity of the author.

<comment><USER7> That odd experience sounds like most human interaction outside of the web. With the added context, I guess you lose objectivity, but gain a sense of community.

</comment></comment></comment><comment><USER8> Gamification is a fad, it will almost certainly evolve into something more sensible, such as "engage your users," once the frenzy ends. It's nice to see Atwood highlighting the fact that they didn't set out to make StackOverflow gamified, they set out to engage users and foster quality contributions.

<comment><USER9> Saying that 'engage your users' is a better terminoligy for what's going on here than 'gamification' basically ignores the whole point of the idea, which is that people like to be making progress towards goals..not 'engaged', but metrically shown as advancing.

That is, at the very basic level, what gamification is, its making an activity into an activity with specific measures of progress toward a goal, such that people can rank themselves (and we do).

This isn't a new or faddish idea, its an insight into how people act, and an attempt to use that bit of new understanding, as Atwood did, before being aware of the term, to engage users using what are called 'game mechanics' which are basically motivations outside of the actual reward structures of the activity. I suspect "engage your users" is moving into the much more targeted and practicable mode of "gamify your interface" rather than vice versa.

<comment><USER8> Games are not games because they are scored and have goals. Games are games because they are fun. Scoring is one aspect and usually present, but it's only one aspect and will only appease a subset of people. You can play soccer for 2+ hours and not achieve a single goal. It's still fun. Even if goals are scored, keeping track is entirely optional. Soccer is a game and fun, even when you don't "gamify" it by keeping score.

Furthermore, "gamification" by that definition often begets "gaming" the system. Because scoring, measuring, and mechanical details almost never perfectly match the spirit and original intent of the game, these edge cases cause dissonance and frequently disengagement. Examples: A baseball player hitting 17 foul balls waiting for a good pitch, basketball players causing fouls on purpose simply to stop the game clock, monks in Everquest using the "feign death" skill to split mobs that would be unbeatable as a group; these are real dynamics in successful game systems originally designed or evolved to be that way. In other areas, such as academic grading or pay-for-performance, the dissonance is significantly more profound.

People play foldit because it's _fun_ , and that's what "gamification" should be about. The scoring metrics are merely a small piece of that.

<comment><USER9> Granted that's what games are about. But gamification is about using game mechanics (mechanics being things like -scores- which let you understand your position against that position of other people, and rules, which keep you from doing whatever you like, as something completely aside from the point of the 'fun' of the game) to do something much more functional than make things fun: to make things addictive or otherwise drive the user to pursue things outside of their standard pattern.

Stack overflow's design isn't about making it fun, its about making the users collaborate into something that is easy and valuable to the population. The rules of a game in general aren't about making the games fun, they're about providing a framework for competition.

<comment><USER8> Right, and that's why I think "gamification" will be a fad. Eventually people will see through transparent attempts to lead them by the nose through otherwise completely unengaging content and will move on to something more compelling.

Sure, designers will continue to include game mechanics to enhance engagement, it just won't be this crazy concept that everyone obsesses about. It'll just be a tool you can use sometime if the situation seems right.

And I disagree about stackoverflow on both counts. I believe it is fun, and that competition is a nonessential component to the sites success. Some people do thrive on competition, others do not. The core of stackoverflow is the dialogue between askers and answerers. Maybe say "rewarding" instead of "fun." The scores and rules are a nice enhancement to the core experience-- they facilitate public recognition, sorting and organization, among other things. There has been competition and recognition on Wikipedia for a long time, and they have made no overt attempt to "gamify".

Another important thing that the stackoverflow game mechanics do is guide users to functionality they might not know about. What you call "driving" users I would call "leading." Hardcore completionist, achievement-oriented, and competitive users are, of course, driven. The rest, however, are not, and to them features like "badges" just bring attention to the wide variety of ways the site can be engaging. The FAQ is well-written and very useful. The "analytical" badge merely helps draw a little extra attention to it. vBulletin has a boilerplate FAQ that probably no one has read in years since it's the same on every single forum that uses the software.

</comment></comment></comment></comment></comment><comment><USER10> What struck me most is Jeff's disregard for potential patent threats. Perhaps inadvertent, but he also makes a strong case for why such "business method" patents hinder innovation rather than promote it.

</comment><comment><USER11> Great post by Jeff Atwood here. It reminds me of this old RWW piece featuring SO and some great quotes by Spolsky: [http://www.readwriteweb.com/archives/anthropology_the_art_of...](http://www.readwriteweb.com/archives/anthropology_the_art_of_building_a_successful_soci.php)

"What we do have to think about [in the era of social networking] is human to human interaction," he said. And according to Spolsky, to do that, you have to think as an anthropologist does.

</comment><comment><USER12> I read it as:

      Coding Gamification: The Horror

</comment><comment><USER13> I've heard the quote as "bad artists borrow, great artists steal", which always made more sense to me. A bad artist will take what someone else has done, but it remains essentially the original artists vision and concept. A great artist steals it, and claims total ownership, making it uniquely theirs, despite the original source.

</comment><comment><USER14> I like how I dont have to visit Coding Horror regularly to see whether there is a new post but rather just check HN</comment>


Ask HN: Any systems out there that keep you update to on what's in your fridge? - <AUTHOR>

My family often forgets about recent leftovers in our fridge, or simply new food that is buried in a drawer in back of the fridge.
High level, I'm imagining a system of some sort that automatically "scans" items as they're put into your fridge and as they're removed.  The system (accessible via mobile and web) keeps an always up-to-date inventory of what's in your fridge.
It reminds you (via physical display, email, SMS, whatever) of soon to expire items and items that haven't been touched in a while.  It causes you to stop wasting food and save money on groceries.
Anybody know of anything like this out there? <comment><USER2> Honestly, just try opening the fridge door every once in awhile. The rest of us dig into it multiple times a day and an app would be completely pointless.

</comment><comment><USER3> Not aware of anything like that. My guess is that it isn't feasible or that there are significant concerns about adoption.

How would you scan? Bar code? Seems like a pain in the ass. Putting RFID on everything in your fridge doesn't seem feasible either.

Any solution like this has to be easy to use and cost effective for it to have adoption.</comment>


Machine Learning Teaches Me How to Write Better AI - <AUTHOR> http://yieldthought.com/post/95722882055/machine-learning-teaches-me-how-to-write-better-ai

<comment><AUTHOR> Some more details:

* I used the complearn package from [http://complearn.org/](http://complearn.org/) \- it hasn't been updated in a while and needed a few minor changes to compile on Ubuntu 14; drop me a line if you'd like the patch.

* Similarity clustering with NCD works best when you can visually inspect the items and get _some_ level of understanding as to what they are doing. I recently clustered all of our web logs on a monthly basis and found that, while e.g. summer months were clustered together (around releases and conferences typically) there were a couple of unexpected winter months in there too. The logs were too large to inspect for differences by hand - in this case it is more useful to cluster e.g. individual requests, or summaries tables of each month.

* Wesnoth is a great example of an open source game that continues to grow and develop and the team are friendly and welcoming. I can highly recommend contributing to it!

<comment><USER2> _Similarity clustering with NCD works best when you can visually inspect the items.._

Doesn't this apply to all the clustering algorithms ? And this is what we want to avoid for clustering, because it is not easy to visualize in higher dimensions.

<comment><AUTHOR> It's a particular problem with NCD because you don't always know what the compressor is measuring. At least with the L2 distance on a vector you know that those points were close to each other for a well-defined definition of 'close'. If it is surprising that they are close, you might want to investigate whether your feature selection really makes sense for these items.

With NCD the compressor selects its own features in a largely opaque way. This makes it fun to use but difficult to debug!

</comment></comment></comment><comment><USER3> Thanks for the description of your workflow and the reflective thinking about your journey to get there. I was just looking at both R and Julia for similarity distances earlier today and thinking about which might work better in an automated analytic application. Your post convinced me to go take a look at complearn.org

What is your sense for how it compares with kNN or hierarchical clustering at the clustering level or with various statistical distance measures like Euclidean, Manhattan etc. at the raw distances level?

<comment><AUTHOR> NCD as a distance measure can be used for kNN and in this case actually was used for hierarchical clustering in the form of the unrooted binary tree.

As for how NCD compares to euclidian, manhattan distances and so on - it's interesting. One of NCD's strengths is that you can apply it even if your data is not readily representable as a uniformly-long vector of numbers, whereas most other distance measures require this and it's not always convenient to represent input data in that form.

For example, in this application games may be of widely-varying lengths. That doesn't matter when computing the NCD, but I'd have had to pad out the "missing" values from shorter runs to the lengths of longer ones, or truncated long ones, or resized them all with some smoothing.

None of those seemed like particularly good options for this application.

Also, with time series (which this essentially is), most compressors are good at recognizing patterns repeated in items. That means that 0, 0, 4, 7, 9, 4, 0 is very close to 0, 4, 7, 9, 4, 0, 0 under NCD and is comparatively distant under euclidian, manhattan and cosine distances as the elements of each vector are assumed to be independent.

In short, your mileage may vary and will depend on the application. I like NCD because it's super easy to throw it at almost any problem and get a quick understanding of how the data is structured.

The algorithms in complearn are slow. I'm experimenting with much faster ones that scale better at the moment.</comment></comment>


Write your passwords down - <AUTHOR> http://blog.jgc.org/2010/12/write-your-passwords-down.html# <comment><USER2> Or use Password Gorilla: <https://github.com/zdia/gorilla/wiki>

And then you don't have type the random cryptic passwords you should use. It will copy them to the clipboard so you can paste them into the website's login/password boxes.

<comment><USER3> Does it clear out the clipboard after a certain timeout? This is why I like browser extensions to handle autofilling my passwords.</comment></comment>


Congratulations You've Been Fired - <AUTHOR> http://www.nytimes.com/2016/04/10/opinion/sunday/congratulations-youve-been-fired.html <comment><USER2> Extensive discussion from when the article was first published in 2016:

[https://news.ycombinator.com/item?id=11463434](https://news.ycombinator.com/item?id=11463434)</comment>


Web application architecture (subdomain vs. sub directory) - <AUTHOR> Hi Everyone,
I'm in the customer discovery phase for a Health IT web application concept I have. My programmer is new to web apps, but not to programming and is set up with LAM(PHP). Maybe we're a little old school, but it's proven. We're still debating weather to use a framework or to go with Rasmus's "no framework framework" approach.
Language/Framework decisions aside... my main question is about subdomain (customerx.appname.com vs subdirectory (appname.com/customerx/) models for instances of individual customers' accounts.
It seems most people are opting for the former, but I see flickr use the latter. The guys at Particletree (i.e., Wufoo) wrote a blog post about it (http://particletree.com/notebook/subdomains-development-sucks/) years ago to which they still attest.
They say the subdirectory model is much easier and faster to develop and deploy. We are developing locally on our macs and using hosted CVS.
I'm really lost on this issue as all my searches turn up stuff on SEO/SEM. Is one approach easier that the other? What about security and scalability considerations? I would very much appreciate your opinions as to the pros and cons of each approach.
As an aside, does anyone have some advice about rapid PHP deployment, i.e., pushing new features to production daily in micro iterations vs the typical milestone approach? Are there any good tools for this? What about hosts?
Thanks all,
Tim <comment><USER2> Speaking from a customer/user perspective: for things where I'll want to interact with other users/customers of the app and where there will be a publicly visible page (i.e. flickr, twitter) it seems to make more sense to use directories. For things where it's more of an internal use only and not visible without being logged in (basecamp, for instance), subdomains seem right. I think that's partly because of precedent from those widely used services, and partly because subdomains feel more private/secure.

<comment><AUTHOR> I agree somewhat, but I think it's mostly due to precedence. There are plenty of examples of URI component set ups that are (and feel) secure (gmail on https for one).

</comment></comment><comment><USER3> I think the subdomain approach is quite nice when the user account has a published component (think Posterous/Blogspot, not Gmail).

<comment><AUTHOR> Good point. In my case, it's really more document management based, i.e., each app instance (customer) has many clients whose private data they will be managing after it has been posted.

</comment></comment><comment><USER4> Three nice things about using subdomains are that you can:

a) point a single account's DNS to an entire server (or cluster) without forcing all traffic to a specific machine or proxy

b) offering custom domain names to customers is simply a matter of adding a DNS alias

c) don't have customer URLs "polluting" your app's URL namespace

At least IMHO, could be wrong though. :)

edit: abcs

<comment><AUTHOR> so does point a) imply that scaling/load balancing is easier with subdomains? Is "adding a DNS alias" easy to do on a localhost or would it require a different scripting than on a live server?

</comment></comment><comment><AUTHOR> Thanks for all your comments!

Is there an argument to be made in favor of either approach as regards security?

I was thinking of a URI component structure that would use each customer's office address/credentials (gathered at sign up) e.g., coolapp.com/john/doe/MD/Newton/MA/02158/

</comment><comment><USER5> * Your SSL certificate will be considerably more expensive for a wildcard

* URI components have a wider scope of acceptable characters than domains, plus uri escaping e.g. spaces with a %20

* subdomains can be traffic shaped / cluster managed using IP addresses (until you run out if IPs)

* URI components can be traffic shaped using internal IPs via your web server

* In my experience it's easier to mod-rewrite and pass $1 than a DNS and parse a hostname

I remember lots of people going with subdomains that have since switched to URI components, particularly <http://news.bbc.co.uk/> now goes to <http://www.bbc.co.uk/news/> I would say that it is easier to categorize as one drills down. It is a shame that domains ended up backwards or else it would make more sense - <http://uk.co.bbc/news>

So my personal preference is for URI components

<comment><USER6> Don't forget cross-site scripting if you go with any RIA web apps on the domain. I hate that one, because I would love to put all of my services on services.mydomain.com and get them out of the general app space, but it creates such a pain with scripting that it is not worth it.

<comment><AUTHOR> How is this different with an RIA vs non-RIA web app? You mean like something in Flash or Flex vs HTML? Not sure I get what you mean.

Are you saying it's more work for a localized app (coolapp.com/customer1/) to interact with services.coolapp.com than with coolapp.com/customer1/services. And does the latter imply that there would be massive redundancy or can one go about routing queries to avoid that?

<comment><USER6> Yes sorry, RIA is JavaScript to me. I mainly work on web-apps, and they are JavaScript intensive. The security constraints but in say that accessing services.mydomain.com is like accessing yourdomain.com so JavaScript balks at it because it views it a a cross site call. So fir simplicity sake you end up just doing mydomain/services/customer1. It is semantics but I would love to put all of my services on a sub-domain and have browser based JavaScript be able to access it. It would make moving that logical sub domain off to an app server easier as it is a DNS entry as opposed to routing rules for the /services sub folder on the domain. For SaaS it would be a god send because for each client you could set up a virtual host that pointed services.clientdomain.com to the hosted app server and provide managed services for a client with just a simple DNS entry. As it sits now, the client has to set up configurations to forward /services to the managed services. For me and what I do, allowing JavaScript XHR calls within the second level domain would simplify some things. The problem is it assumes trust across a domain and that does not hold true for larger entities, for example say you have bigco.com and it has hr.bigco.com. You really don't want all of the enterprise to be able to access sensitive HR services so that is why you get the current model. I just wish it was configurable per domain.

<comment><AUTHOR> kls,

You've certainly taught me a thing or two. I never knew Javascript had such limitations across (sub) domains. There's an old article on it here: [http://radio.javaranch.com/pascarello/2005/12/30/11359624608...](http://radio.javaranch.com/pascarello/2005/12/30/1135962460818.html)

<comment><USER6> They are working on the issue <http://www.w3.org/TR/2010/WD-cors-20100727/> it is just not available yet and even after browsers implement it, it will be some time before you can safely use it outside of a controlled environment. For now, you have to use an IFrame, or Flash to get around the browser restrictions of same origin policy.</comment></comment></comment></comment></comment></comment>


Fallout 3 in Fallout 4 mod cancelled due to voice acting copyright - <AUTHOR> https://capitalwasteland.com/#cancellation-announcement-section <comment><USER2> I saw this go by and was a bit confused. Normally the way this is done they don't supply the content from the original game you have to provide your own copy which you then mod to use the newer version of the engine. You might need a copy of both the old game and new game to legally have everything you need to produce the modified version.

I don't see what claim a copyright holder has against either the user of the mod or developer of the mod. I thought this was one of those first sale doctrine things where once you buy it's yours to use modulo restrictions against redistribution and EULA related things with questionable legality.

<comment><USER3> "I don't see what claim a copyright holder has against either the user of the mod or developer of the mod."

I've examined this problem and been keeping track of it for nearly two decades now, keeping an eye out for legal resolution of it, and to the best of my knowledge there is still bupkis on this front legally. Even before we consider EULAs, it is legally quite clear that they could not take the two copyrighted products Fallout 3 and Fallout 4 and _distribute_ the resulting new work. (And what EULA have you ever seen for a AAA game that would explicitly permit that?) It is completely legally unclear whether it is OK to release a tool that the end-user nominally uses to do the work themselves. On the one hand, there are certain arguments that this should be OK; I'm sure in the next few hours a few dozen of these will pour in. (Though I will say the most obvious error they make in general is to _grossly_ overstate the degree of ownership the end-user has over the content, and, again, that's even before considering EULA clauses.)

On the other hand, if these arguments are accepted, then it allows a clear path to completely circumvent the aforementioned clear legal result that the end product could not be distributed. This is generally frowned on by the common law legal system, cynical comments to the contrary. It is also in a very real sense arguable that the user, who is putatively putting these two works together, can't really be said to be doing so when the sum total of their contribution is "the user clicked a button"; how can they be said to be responsible? It's pretty obvious that button-clicker can't be said to hold any copyright rights over the result, because "clicked a button" certainly doesn't raise to the level of creative input. It can be easily argued that in a legal sense the program is still the responsibility of the original combinind developer, and that the developer is still as responsible for the output as if they were directly distributing the output, what with the end results being (potentially at least) literally bit-for-bit identical.

I remain unaware of even the slightest hint of legal guidance in this area. And please note I'm not in this message trying to advocate either way; I'm simply discussing the situation. (I have opinions, but they are incomprehensible until you first understand that there is a problem _at all_.)

<comment><USER4> > distribute the resulting new work

There are several mods of this sort in the Elder Scrolls community that work because they explicitly do not do this. You basically take an open-source engine and point it at an existing install of the game. It knows how to read all the original data files but does not do any modification or redistribution of them. AFAIK Bethesda explicitly gave them a blessing for this approach.

<comment><USER5> In this case it's the OpenMW reimplementation of the Morrowind engine, which is fantastic and rapidly maturing (and capable of playing the game right now, they just continue to add features). [http://openmw.org](http://openmw.org)

The Bethesda thing as far as I know was about Morrowind on non-PC devices and they talk about it here: [https://openmw.org/faq/#bethesda_legal](https://openmw.org/faq/#bethesda_legal)

</comment></comment></comment></comment><comment><USER6> Could they not have required the user to own a copy of Fallout 3 and then extract the needed sound files from the original installation on first launch? Then the copyrighted works wouldn't need to be distributed with the mod itself.

<comment><USER7> Apparently that was their original idea, which was rejected by Bethesda's legal team.

[https://www.reddit.com/r/Fallout/comments/844t22/some_of_the...](https://www.reddit.com/r/Fallout/comments/844t22/some_of_the_misconceptions_regarding_the_the/)

At this point I'm fairly convinced that Bethesda is going to announce a 10th anniversary release of Fallout 3 at E3 and don't want the competition.

<comment><USER8> I really wish they provided details on why they had to go to the legal team in the first place and on what grounds they were rejected. Among other things, I would imagine the developers would not be liable for end-users violating the EULA, so it's kind of head scratching why they would interact with bethesda at all.

<comment><USER9> I think the mod developers don't want to spend their time,energy and money in a legal battle, Bethesda could drag this in courts and who knows with the current copyright laws may even win, would you risk it if you were living in US or such a country? I would give up and work on an open source game instead or a game more friendly to this kind of modding.

</comment></comment></comment></comment><comment><USER10> I don't understand why they don't simply have those parts of the game be without any voice acting. Plenty of games don't have voice acting. There's nothing wrong with a mod not having it.

<comment><USER11> I agree. Particularly because the voice acting is usually just distracting you from what you're reading. There you are, reading the fifth sentence, and the voice is still slowly speaking the beginning of the second one.

</comment></comment><comment><USER12> If you ever get the urge to go into gaming, take a rock and thrust it into your eye. When games are canceled hundreds of people have wasted thousands of hours on: programming, ai, economy adjusting, art (raster + vector). Games are canceled all the _time_ for frivolous reasons. Wasting your 20s at a game company re-writing madden football 19 with low pay and harsh hours isn't 'cool' \-- it is just wasting your 20s'.

<comment><USER13> > When games are canceled hundreds of people have wasted thousands of hours > on: games, ai, art (raster + vector).

I don't think this is any different than the risk of working for a startup. I've worked for a number of companies in my career that no longer exist. It's really the same as far as I am seeing.

<comment><USER12> Yes. But you can prove "uber for cats" doesn't work with 5 people. Not 100 people, 3 years later. Canceling a game is more like a funeral.

<comment><USER13> This comes off as very dismissive of startups.

Do you honestly believe they are all 5 person companies doing frivolous things?

</comment></comment></comment></comment><comment><USER14> Because its challenging to discuss the merits of different thought processes regarding IP and fair use with people without boring them to death I recommend responding by just telling people that Bethesda makes buggy games and not to buy them.

<comment><USER15> If there would be an alternative to the Fallout series I would buy it. But there aren't. The closest I can think of is the newer Shadowrun series, but that is not open world enough to be played more than 2 times.

</comment></comment><comment><USER16> Increasingly, I'm wanting to live in a place where there is no IP law whatsoever. Is there such a place on earth at the moment?

<comment><USER17> _Experts and activists are raising concern over the lack of proper intellectual property laws in South Sudan, as the world's newest nation's admission into the East Africa Community (EAC) spurs anticipation of increased investment._

[https://www.ip-watch.org/2016/03/08/as-south-sudan-joins- eas...](https://www.ip-watch.org/2016/03/08/as-south-sudan-joins-east-african- community-some-experts-worry-over-its-ip-laws/)

#1 on this list is South Sudan: [https://en.wikipedia.org/wiki/List_of_countries_by_Fragile_S...](https://en.wikipedia.org/wiki/List_of_countries_by_Fragile_States_Index)

South Sudan also happens to be #14 on this list: [https://www.telegraph.co.uk/travel/galleries/The-worlds- most...](https://www.telegraph.co.uk/travel/galleries/The-worlds-most- dangerous-places/south-sudan/)

<comment><USER18> Putting it this way creates the impression that a lack of IP laws directly results in political instability and danger to people's lives. That's incredibly disingenious.

The reason South Sudan is such a horrible place is that it only recently gained independence and has been caught up in its own civil wars pretty much constantly. The reason its IP laws are practically non-existent is probably that it just hasn't been a practical concern for the young nation yet.

<comment><USER19> I did not read it that way; I read the comment as saying "here's a place you could move that has no IP laws, but you probably don't want to move there for this other reason".

</comment></comment></comment></comment><comment><USER20> How about they release it without the voice acting?

<comment><USER21> Or even just redo it. I can't imagine it would be that onerous a task to crowdsource it out to like-minded enthusiasts - and some of the VA in FO3 was hilariously bad (I'm thinking of do-over lines, mispronunciations, monotonous delivery of some dialogue), so what's the worst that can happen? I'd happily sit there and crank out a few thousand lines of dialogue.

</comment></comment><comment><USER22> Looks like the perfect use for this software. [https://www.youtube.com/watch?v=xxDBlZu__Xk](https://www.youtube.com/watch?v=xxDBlZu__Xk) Surely it needs some good work to make it more realistic, but we're not that far. Should they use it without advertising whose celebrity is being imitated, could they still be sued?

</comment><comment><USER23> Why are some words capitalized? Is there a hidden message here or something?

</comment><comment><USER24> Why can't I just configure the location of my Fallout 3 installation?

</comment><comment><USER25> Its why dual audio is often missing and why undubs are illegal.

</comment><comment><USER26> It happens a lot in the modding scene, that the project team is strong in landscaping, but not so much in everything else that needs to be ported.

Often they don't have software guys to code the custom tool for that, and they end up doing a lot of it manually.

In case of porting F3 to F4, you have to deal with a different scripting language.

So blaming it all on copyright of voice acting is a convenient excuse to sunset the project.</comment>


Show HN: I made a visual scraper that sends data to Sheets, Slack, IFTTT... - <AUTHOR> https://www.youtube.com/watch?v=SpWNDoKUNEE <comment><AUTHOR> Hello HN!

Monitoro is a project of mine that I shared in HN quite some time ago to a warm reception. The goal behind it is to democratize everyone's access to data by making it easy to extract data from websites. It still required some technical understanding of webhooks and some Javascript.

Quite recently, I managed to make it so effortless it doesn't require tech skills or more than 30 seconds to get started.

I would love to hear your thoughts on it, any feedback is welcome! (and if you want to try it out hit me up at email@example.com for some HN freebies)</comment>


Balaji Srinivasan has deleted all but one tweet - <AUTHOR> https://twitter.com/balajis <comment><USER2> Hmm. It's probably great advice for the individual, but perhaps worse for society. I noticed that the smart are fearful and full of doubt but the stupid are cocksure and confident. Because of this the stupid voices outnumber the smart. So I put up a youtube advertising the benefits of smart people speaking up and spreading their ideas.

So in the case Balaji's net benefit to the world is greater through what he builds, than what he says on twitter, we win. It must be said that communication exists to change behaviors, so if you want better behaviors, you need better communication. It is possible that your total gain to society is higher influencing others into better behaviors than by building alone, and they're not mutually exclusive.

</comment><comment><USER3> he's being considered for a leadership position at the FDA ( according to Bloomberg)</comment>


GDPR: Four Complaints Filled Against Google, Instagram, WhatsApp and Facebook - <AUTHOR> https://noyb.eu/ <comment><AUTHOR> On first day of GDPR beeing enforcable, non profit organization (where main protagonist organized 25000 class action suit against facebook in 2014, but was rejected by court - now he has legislation to back him up) filled 4 complaints in 4 different countries (looks like a good idea to not overwhelm ICO in 1 country with 4 investigations, probably 5th ICO will join (Ireland).

After reading the complaints, it is directed into common way how GDPR is beeing handled by large companies, showel everything under legitimate interest, update privacy policy and force consent, which is clear violation.

Now this is going to be interesting, maximum posible penalty for all four (combined) is 7.6 Mrd euros.

<comment><USER2> I doubt they will get anything near the max penalty, if they get fined anything at all, since we're now in the 1-year grace period.

<comment><AUTHOR> Grace period was for past 2 years and it is over and surely, they will be warned first, but I bet noyb isn't the only one filling complaint.

[https://iapp.org/news/a/icos-wood-gdpr-grace-period-no- way/](https://iapp.org/news/a/icos-wood-gdpr-grace-period-no-way/)

<comment><USER2> I stand corrected. It was my impression from multiple articles that fines would not be an immediate enforcement.

However, as much as I would like them to get slapped around, I believe the likes of Facebook are too smart/nefarious to act the way they do without having some sort of plan or escape hatch that would have them dodge said fines.</comment></comment></comment></comment>


Former Supreme Court judge gives a critique of the Government's lockdown - <AUTHOR> https://www.dailymail.co.uk/debate/article-8281007/Former-Supreme-Court-judge-LORD-SUMPTION-gives-withering-critique-Governments-lockdown.html <comment><USER2> > But the lockdown is without doubt the greatest interference with personal > liberty in our history.

Previous crises in British history included forced conscription and dropping you over Nazi Germany on a 1940s parachute. That would seem to interfere with personal liberty at least as much as being asked to avoid orgies and the suffering that is no football on TV.

> To say that life is priceless and nothing else counts is just empty > rhetoric.

Which is why nobody is saying that.

> Life is a family celebration with children and grandchildren. Life is > companionship, an arm around one's back, laughter or tears shared at less > than two metres. These things are not just optional extras. They are life > itself.

Now who's engaging in empty rhetorical flourishes?</comment>