Learning Math for Machine Learning - <AUTHOR> https://blog.ycombinator.com/learning-math-for-machine-learning/ <comment><USER2> Here is a nice "cheat sheet" that introduces many math concepts needed for ML: [https://ml-cheatsheet.readthedocs.io/en/latest/](https://ml- cheatsheet.readthedocs.io/en/latest/)

> As soft prerequisites, we assume basic comfortability with linear > algebra/matrix calc [...] >

That's a bit of an understatement. I think anyone interested in learning ML should invest the time needed to __deeply __understand Linear Algebra: vectors, linear transformations, representations, vector spaces, matrix methods, etc. Linear algebra knowledge and intuition is key to all things ML, probably even more important than calculus.

Book plug: I wrote the "No Bullshit Guide to Linear Algebra" which is a compact little brick that reviews high school math (for anyone who is "rusty" on the basics), covers all the standard LA topics, and also introduces dozens of applications. Check the extended preview here [https://minireference.com/static/excerpts/noBSguide2LA_previ...](https://minireference.com/static/excerpts/noBSguide2LA_preview.pdf) and the amazon reviews [https://www.amazon.com/dp/0992001021/noBSLA#customerReviews](https://www.amazon.com/dp/0992001021/noBSLA#customerReviews)

<comment><USER3> > _I think anyone interested in learning ML should invest the time needed to > deeply understand Linear Algebra: vectors, linear transformations, > representations, vector spaces, matrix methods, etc. Linear algebra > knowledge and intuition is key to all things ML, probably even more > important than calculus._

To play devil's advocate, (EDIT: an intuitive understanding of) probabilistic reasoning (probability theory, stochastic processes, Bayesian reasoning, graphical models, variational inference) might be equally if not more important.

The emphasis on linear algebra is an artifact of a certain computational mindset (and currently available hardware), and the recent breakthroughs with deep neural networks (tremendously exciting, but modest success, in the larger scheme of what we wish to accomplish with machine learning). Ideas from probabilistic reasoning might well be the blind spot that's holding back progress.

Further, for a lot of people doing "data science" (and not using neural networks out the wazoo) I think that they can abstract away several linear algebra based implementation details if they understand the probabilistic motivations -- which hints at the tremendous potential for the nascent area of "probabilistic programming".

<comment><USER4> _> To play devil's advocate, probabilistic reasoning (probability theory, stochastic processes, Bayesian reasoning, graphical models, variational inference) might be equally if not more important._

And of course, you're not going to get very far with probability theory and stochastic processes unless you have a mature understanding of analysis and measure theory :)

This comment exchange neatly demonstrates the intrinsic problem. Most of these articles start off much like this one does: by assuming "basic comfortability with linear algebra." That sounds straightforward, but most software engineers _don 't have it._ They haven't needed it, so they haven't retained it even if they learned it in college. It takes a good student a semester in a classroom to achieve that "comfortability", and for most it doesn't come until a second course or after revisiting the material.

If you don't already have it, you can't just use StackExchange to fill in the blanks. The random walk method to learning math doesn't really pan out for advanced material because it all builds on prior definitions. Then people like you make a comment to point out (correctly) that probability theory is just as important for all the machine learning that isn't just numerical optimization. But unless you want to restrict yourself to basic statistics and discrete probability, you're going to have a bad time working on probability without analysis. And analysis is going to a pain without calculus, and so on and so forth.

There are certain things you need to spend a lot of time learning. Engineering and mathematics are both like that. But I think many of these articles do a disservice by implying that you can cut down on the learning time for the math if you have engineering experience. That's really not the case. If you're working in machine learning and you need to know linear algebra (i.e. you can't just let the underlying library handle that for you), you can't just pick and choose what you need. You need to have a robust understanding of the material. There isn't a royal road.

I think it's really great people like the author (who is presumably also the submitter) want to write these kinds of introductions. But at the same time, the author is a research assistant in the Stanford AI Lab. I think it's fair to say he may not have a firm awareness of how far most software engineers are from the _prerequisites_ he outlined. And by extension, I don't think most people know what "comfortability with linear algebra" means if they don't already have it. It's very hard to enumerate your unknown unknowns in this territory.

<comment><USER5> I get what you are saying, but is the right way to learn math with a "connected path". I've heard "The art of problem solving" series works through math in the correct way, but I'm not sure how far I would get on that alone. Right now I'm trying to gain intuition in linear algebra via OCW with Strang, but I would like to truly understand. Is the only way to just to do a second bachelors in math?

<comment><USER4> You don't need to do a second bachelors - you really need four or so courses. If you have the patience and dedication you can sit down with the textbooks and work through them on your own.

<comment><USER6> This.

There's always more you might want to learn, but when people talk about these basics, it's really just being super focused in 4 or so classes, not a whole ivy league undergrad curriculum in math.

probability & stats, multivariable calculus, and linear algebra will take you a long way.

<comment><USER5> Cool. I will look into those, but I was asking as a general interest in math question. I actually have no interest in machine learning. I'm bored of chasing money. Interested in 3D computer graphics and math for math's sake.

</comment></comment></comment></comment></comment></comment></comment><comment><USER7> I think a lot of people need to start from the basics because they don't have a good foundation in math. The core problem is schools will push you along if you can somehow produce the correct answer for 70% of the problems on a test. Combine this with intense pressure not to fail and you will very likely end up in higher level math courses with many gaping holes in your foundational knowledge. You thus end up relying on tricks and memorization rather than useful understanding. Here is a TED talk where Sal Khan of Khan Academy talks about this: [https://www.youtube.com/watch?v=-MTRxRO5SRA](https://www.youtube.com/watch?v=-MTRxRO5SRA)

After struggling to understand advanced math in a lot different contexts I decided to go through the entire K-12 set of exercises on Khan Academy. I blazed through the truly elementary stuff like counting and addition in a few hours, but I was suprised at how quickly my progress started slowing down. I found I could not solve problems involving negative numbers with 100% accuracy. Like (5 + (-6) - 4). I would get them right probably 90% of the time but the thing is Khan Academy doesn't grant you the mastery tag unless you get them right 100% of the time. I found most of my problems were due to sloppy mental models. Like, I didn't understand how division works -- if someone were to ask me what (3/4) / (5/6) even means conceptually I would not have been able to provide a coherent, accurate explanation. "Uh... it's like taking 5/6 of 3/4... wait no that's multiplication... you need to flip the second fraction over... for some reason..." It was around the 8th grade level that I found myself having to actually work hard. (What does Pi even mean?) And I've been through advanced Calculus courses at the university level.

<comment><USER4> _> Like, I didn't understand how division works -- if someone were to ask me what (3/4) / (5/6) even means conceptually I would not have been able to provide a coherent, accurate explanation. "Uh... it's like taking 5/6 of 3/4... wait no that's multiplication... you need to flip the second fraction over... for some reason..."_

In case you (or others reading this) still struggle to formalize division, a very nice way to conceptualize it is as the inverse of multiplication. This neatly sidesteps the problem of trying to figure out a clean analogue for what it means to to multiply a fraction of something by another fraction of something, since the intuitive group-adding idea of multiplication sort of breaks down with ratios.

Addition is a straightforward operation, but subtraction is trickier. For all real _x_ there exists an additive inverse _-x_ satisfying _x_ \+ _(-x)_ = 0. So to subtract 3 from 4 we instead take the sum 4 + (-3) = 1.

Likewise to multiply 3 by 4 we add four groups of 3: 3 + 3 + 3 + 3 = 12. We accomplish division by using a multiplicative inverse: for all real _x_ there exists a 1/ _x_ such that _x_ (1/ _x_ ) = 1.

So (3/4) / (5/6) is equal to (3 * 1/4) / (5 * 1/6). In other words, take the multiplicative inverse of 4 and 6 and multiply them by 3 and 5 respectively. Then multiply the first product by the inverse of the second product.

This is the axiomatic basis of division as "repeated subtraction": subtraction is the sum of a number and another number's additive inverse, and multiplication is repeated addition. Then division is the product of a number and another number's multiplicative inverse. From this perspective you need not even understand division computationally if all you'll ever deal with are fractions and not decimals.

<comment><USER8> So this is really interesting, math is all about relationships, and you've got a really solid understanding of how different operations are related.

</comment></comment></comment><comment><USER9> This is excellent. Thank you for taking the time to write it.

I don't know what is it about math -- especially when it involves manipulation of symbols as opposed to pictures or lay language -- that turns off so many people.

The fact that so many software developers "don't like math" is ironic, because they're perfectly happy to manipulate symbols such as "x", "file", or "user_id" that stand in for other things every day. The entirety of mathematical knowledge is very much like a gigantic computer language (a formal system) in which every object is and must be precisely defined in terms of other objects, using and reusing symbols like "x", "y", "+", etc. that stand in for other things.

Perhaps the issue is _motivation_? Many wonder, "why do I need to learn this hard stuff?" If so, the approach taken by Rachel Thomas and Jeremy Howard at fast.ai seems to be a good one: build things, and then fill the theoretical holes as needed, motivated by a genuine desire to understand.

<comment><USER10> _I don 't know what is it about math -- especially when it involves manipulation of symbols as opposed to pictures or lay language -- that turns off so many people._

I can tell you at least part of it, from my subjective perspective. I tend to "think" in a very verbal fashion and I instinctively try to sub-vocalize everything I read. So when I see math, as soon as I see a symbol that I can't "say" to myself (eg, a greek letter that I don't recognize, or any other unfamiliar notation) my brain just tries to short-circuit whatever is going on, and my eyes want to glaze over and jump to the stuff that _is_ familiar.

OTOH, with written prose, I might see a word I don't recognize, but I can usually work out how to pronounce it (at least approximately) and I can often infer the meaning (at least approximately) from context. So I can read prose even when bits of it are unfamiliar.

There's also the issue that math is so linear in terms of dependencies, and it's - in my experience - very "use it or lose it" in terms of how quickly you forget bits of it if you aren't using it on day-in / day-out basis.

<comment><USER2> Very good point about reading/verbalizing symbols and notation. Once you know what they mean, they are super useful for expressing complex concepts precisely and compactly, but when you're getting started they look like an alien language...

<comment><USER10> This is why I'm using Anki to memorize the Greek alphabet, and to keep basic algebraic (h.s. algebra that is) stuff in mind. It might seem like a small thing, but remembering the various rules for factoring, working with fractions, dealing with exponents / root, etc. is not easy when you don't do math all the time.

</comment></comment></comment></comment><comment><USER11> I'm kinda curious why so many people think that Linear Algebra Done Right is an introductory book for beginners who have math anxiety. Don't get me wrong, the book is great and I enjoyed working it through. It was a magical experience when I saw how simple it was to prove some seemingly hard theorems by just linking the right definitions and theorems. That said, the book does require certain level of math maturity as it achieves its elegance by staying at certain level of abstraction and its style is quite formal, so much so that a person who can use this book as its first linear algebra textbook shouldn't have math anxiety at all.

<comment><USER4> Speaking as one of the people who recommended it in this thread: I don't think math anxiety is the right focus for which textbook to choose. More precisely, I don't think you should try to solve that problem by getting a different linear algebra textbook. To put it bluntly, someone with math anxiety probably just doesn't have the mathematical maturity for linear algebra yet. In that case they'd be doing themselves a disservice by attempting the material using some sort of "more accessible" book; instead, they should focus on resolving that anxiety through developing a solid foundation in the prerequisite material.

Linear Algebra is typically the first course in which students have to transition from predominantly rote computation to proof-based theory. Axler's _Linear Algebra Done Right_ is very often the textbook used for that course because it (mostly [1]) lives up to its name. This isn't Math 55: compared to Rudin and Halmos, Axler is a very accessible introduction to linear algebra _for those who are ready for linear algebra_. The floor for understanding this subject doesn't doesn't get much lower than Axler (and in my opinion, it doesn't get much _better_ at the undergraduate level either).

It's unfortunate that so many people want to skip to math they're not ready for, because there's no shame in building up to it. A lot of frustration can be eliminated by figuring out what you're actually prepared for and starting from there. If that means reviewing high school algebra then so be it; better to review "easy" material than to bounce around a dozen resources for advanced material you're not ready for.

__________________

1\. See Noam Elkies' commentary on where it could improve: [http://www.math.harvard.edu/~elkies/M55a.10/index.html](http://www.math.harvard.edu/~elkies/M55a.10/index.html)

<comment><USER12> Tools from linear algebra can be accessible and useful to many people who don't want to (or are not yet prepared to) prove nontrivial theorems. Indeed, a book like Axler's should probably be used in a _second_ semester-long linear algebra course for typical undergraduates wanting to study abstract mathematics; a gentler more concrete introduction would probably be better for students without previous exposure to linear algebra or hard mathematical thinking. For engineers or others who want to use linear algebra in practical contexts, something like Boyd & Vandenberghe's new book might be a better for a first (or even second) course than Axler's book, [https://web.stanford.edu/~boyd/vmls/](https://web.stanford.edu/~boyd/vmls/)

Elkies's post is in the context of a course for _very_ well prepared and motivated first-year undergraduate pure math students who are racing through the undergraduate curriculum because most of them intend to take graduate- level courses starting in their second year.

Those two audiences are very far apart.

<comment><USER4> _> Those two audiences are very far apart._

Yes, that's precisely why I said, "This isn't Math 55: compared to Rudin and Halmos, Axler is a very accessible introduction to linear algebra for those who are ready for linear algebra."

How do you propose to teach linear algebra beyond basic matrix operations and Gaussian elimination if you're not teaching any theory? You can take some disparate tools from linear algebra (just like you can with analysis to make calculus), but The presentation of learning the mechanical tools of linear algebra versus the theory of linear algebra is a false dichotomy. Axler's textbook is a very nice compromise that provides students an understanding of _why_ things are the way they are while still teaching them how to work through the numerical motions of things. You need not go so far as reading _Finite Dimensional Vector Spaces_ if you want to avoid theory, but you need _enough_ of it to put the mechanical operations in some kind of context.

<comment><USER12> Personally I think that the undergraduate mathematics curriculum does a poor job of exposing people to examples and concrete situations before introducing new abstractions.

Students are often entirely unfamiliar with the context (problems, structures, goals, ...) for the new abstractions that are rained down on them, and end up treating their proofs as little exercises in symbol twiddling / pattern matching, without much understanding of what they are doing.

The undergraduate curriculum is put in this position because there is a lot of material to get through in not much time, and students are generally unprepared coming in. Ideally students would have a lot of exposure to basic material and lots of concrete examples starting in middle school or before, but that's not where we are.

<comment><USER4> I think we're in agreement on that point. In my experience most peoples' difficulty with higher mathematics comes from the tendency of elementary and high schools to push students along through grades without ensuring they've really mastered the material. Unfortunately most students come to hate math because they're introduced to ever more abstract and complex material when they haven't achieved a solid foundation to build upon. I don't see this artifact of our education system going away any time soon.

</comment></comment></comment></comment></comment></comment><comment><USER13> My bullet list, which might be too ambitious and theory-focused, but this is what I used from my physics background.

Learn some:

Calc up to 3 (you can skip some of the divergence and curl stuff)

Linear algebra (no need for Jordan change of basis)

Real analysis

Intermediate probability theory (MAE, MAP, conjugate priors minus the measure theory stuff)

A little bit of differential geometry (at least geodesics. This is for dimension reduction)

Discrete math (know counting and sums really well)

Learn a little bit of Physics (at least know Lagrangians and Hamiltonians)

A little bit of complex analysis (to know contour integration and fourier/laplace transforms)

Some differential equations (up to Frobenius and wave equations)

Some graph theory (my weak spot, but I have used the matrix representations a few times)

After all that, read some Kevin Murphy and Peter Norvig.

Congrats, now you can read most machine learning papers. The above will also give you the toolkit to learn things as they come up like Robbins-Monro.

OP's article is much better if you are trying to be a ML developer/practitioner. Like I said, this list might be too theory focused, but it lets me read lots of applied math papers that aren't ML focused.

<comment><USER14> I'm interested to know where you encountered contour integrals in machine learning?

<comment><USER15> ya lol and Hamiltonians. sometimes people just reel off all the math they've heard of to sound impressive. next we'll have people talking about de rham cohomology because of TDA (or something like that)

<comment><USER16> Hamiltonian mechanics, along with many other seemingly out of place 'advanced' maths, show up in modern Bayesian statistics pretty frequently. Hamiltonian Monte Carlo/Riemannian Manifold Monte Carlo are pretty cutting edge (although are implemented in popular libraries like MC-Stan and Pymc3) and both require fairly advanced physics to really understand.

Additionally, we're seeing the introduction of even more sophisticated stochastic samplers (stochastic gradient hamiltonian monte-carlo, etc) that require even more esoteric branches of math and physics to really grok. I have a strong math background but frequently find myself struggling with a lack of knowledge in statistical mechanics when trying to read papers in these areas.

So yeah - there's plenty of bullshit and exaggeration. But there's also some wicked cool stuff happening which requires very sophisticated (and specialized) knowledge to understand.

<comment><USER14> I agree. My original question came from curiosity, not incredulity :)

<comment><USER16> :) Personally I've never used any serious complex analysis in my job (I'm very grateful too, because I always struggled a bit with it). The closest thing I've seen, which I did run into recently, is the use of complex numbers to compute very accurate finite differences. It's one of those delightful tricks that is both elegant and useful: [https://blogs.mathworks.com/cleve/2013/10/14/complex-step- di...](https://blogs.mathworks.com/cleve/2013/10/14/complex-step- differentiation/)

I've been working in golang, which fortunately has built-in complex128 types, so it's proved very helpful in a project!

<comment><USER14> oh cool, I really like Cleve Moler's Matlab posts.

I took a complex analysis class and did OK, but I get the feeling that EEs are the ones who really benefit from it (at least in the applied world). They seem to have some very rich analyses of linear dynamical systems using frequency domain methods.

</comment></comment></comment></comment></comment></comment></comment><comment><USER17> For those who don't know, please check out 3blue1brown videos on youtube for a better understanding of concepts like Linear algebra and other things required for machine learning. Thank me later.

<comment><AUTHOR> I love 3blue1brown! Will add to resources. :)

</comment></comment><comment><USER18> This is something we're striving hard to do at the startup I'm involved with (end-to-end resources for learning machine learning, with just high school math background assumed).

In our Data Scientist Track ([https://www.dataquest.io/path/data- scientist?](https://www.dataquest.io/path/data-scientist?)), I specifically focused on teaching K-nearest neighbors first b/c it has minimal math but you can still teach ML concepts like cross-validation, and then I wrote Linear Algebra and Calculus courses before diving into Linear Regression.

[https://www.dropbox.com/s/lh23y44dsg96xpv/Screenshot%202018-...](https://www.dropbox.com/s/lh23y44dsg96xpv/Screenshot%202018-08-01%2014.55.45.png?dl=0)

</comment><comment><USER19> I recommend the No Bullshit books for anyone with no real math background past trig to get their feet wet, and/or anyone who hasn't done any serious math study for years.

[https://minireference.com/](https://minireference.com/)

<comment><USER2> Thx! Had I known you'll post this, I wouldn't have self-promoted so shamelessly :) I'll add some direct links to PDF previews:

MATH & PHYS book: [https://minireference.com/static/excerpts/noBSguide_v5_previ...](https://minireference.com/static/excerpts/noBSguide_v5_preview.pdf)

LA book: [https://minireference.com/static/excerpts/noBSguide2LA_previ...](https://minireference.com/static/excerpts/noBSguide2LA_preview.pdf) \+ free tutorial: [https://minireference.com/static/tutorials/linear_algebra_in...](https://minireference.com/static/tutorials/linear_algebra_in_4_pages.pdf)

<comment><USER19> Hah I beat you by 2 minutes. Thanks for the great books!

</comment></comment></comment><comment><USER20> Thanks for posting this!! Was actually searching for this the other day here on HN and found a link to the [https://github.com/mml-book/mml- book.github.io](https://github.com/mml-book/mml-book.github.io). haven't checked it out yet but the links in the OP look solid.

<comment><AUTHOR> Looks interesting! Have you gone through it yourself? And how does it compare to other resources?

<comment><USER20> Like I commented above I haven't had a chance to go through the [https://github.com/mml-book/mml-book.github.io](https://github.com/mml- book/mml-book.github.io) book yet. But now that I have read your article in full I think diving headlong first with ML and then back filling the Math/Stat/Prob holes is the best approach to learn ML engineering. Like SICP authors mused about modern software development as being "programming by poking at it using APIs" instead of just lesrning to program just for the heck of it.

</comment></comment></comment><comment><USER21> Hi Vincent, you may want to point your "Best Practices for ML Engineering" link to the non-PDF version here: [https://developers.google.com/machine- learning/guides/rules-...](https://developers.google.com/machine- learning/guides/rules-of-ml/)

<comment><AUTHOR> Thanks for the heads up!

</comment></comment><comment><USER22> The LAFF: Linear Algebra class just started again for the "fall semester" [https://courses.edx.org/courses/UTAustinX/UT.5.02x/1T2015/co...](https://courses.edx.org/courses/UTAustinX/UT.5.02x/1T2015/course/)

Maybe one of these days I'll complete it :)

I really like 3Blue1Brown for a wide range of math topics. He's just a great teacher.

[https://www.youtube.com/playlist?list=PLZHQObOWTQDPD3MizzM2x...](https://www.youtube.com/playlist?list=PLZHQObOWTQDPD3MizzM2xVFitgF8hE_ab)

Frankly, I find the UTAustin linear algebra class less than ideal or optimal, but it's free and lots of classmates, material, so...

</comment><comment><USER23> Re: PCA vs. tSNE. I don't know much about tSNE, but if it _is_ a "manifold learning method" as the sklearn docs say, you could try something like LTSA instead:

e.g. [http://www.aaai.org/ocs/index.php/aaai/aaai11/paper/download...](http://www.aaai.org/ocs/index.php/aaai/aaai11/paper/download/3603/3894)

Then, it's not difficult to understand what a manifold _is_ , but it took me a number of attempts to get it, and then I only did when studying them formally with Spivak 1963. Now the concept of manifold seems patently obvious to me and not really needing much formalization, but...

<comment><AUTHOR> Thanks for the reference... will give it a read.

<comment><USER24> There's also UMAP, which is new but looks promising.

</comment></comment></comment><comment><USER25> Just wondering if someone had a similar experience: I absolutely loved Math in school, zipped through the classes, always one of the best.

Then things changed at university (studying computer science) and I completely lost interest. Not sure why (bad teacher, going from being best in class to being average, the math at uni different from school).

Now, much later, I regret not having followed through and miss the beauty of Math. I'm re-discovering it and wondering how I could use more of it in my work.

</comment><comment><USER26> Nice article. Would you recommend this MOOC? [https://www.coursera.org/specializations/mathematics- machine...](https://www.coursera.org/specializations/mathematics-machine- learning) It doesn't focus on probability or statistics though. If not, is there any other MOOC you would suggest?

</comment><comment><USER27> >A student's mindset, as opposed to innate ability, is the primary predictor of one's ability to learn math (as shown by recent studies).

The article seems good overall, but I only skimmed the rest after seeing a citation of a 5-year-old Atlantic article describing disputed and at minimum highly exaggerated findings presented as 'shown in recent studies'.

<comment><USER28> That may be a bad reference, but there are lots of studies about this. See the book _Mathematical Mindsets_ by Jo Boaler for many references.

</comment></comment><comment><USER22> I really want a shallow-dive into machine learning and I know I need linear- algebra as a foundation. I would love an interactive course in linear algebra where we could input matrices and see some visual stuff with animations.

<comment><USER2> Check out 3blue1brown on youtube [https://www.youtube.com/playlist?list=PLZHQObOWTQDPD3MizzM2x...](https://www.youtube.com/playlist?list=PLZHQObOWTQDPD3MizzM2xVFitgF8hE_ab) Everything this guy does is gold!

This is also really good for connecting LA concepts with visuals [http://immersivemath.com/ila/index.html](http://immersivemath.com/ila/index.html)

</comment></comment><comment><USER29> Does anyone have suggestions on learning resources for matrix calculus? I'm trying to come up to speed with the topic and could use pointers to worked examples, video lectures, etc.

<comment><USER30> [The Matrix Calculus You Need For Deep Learning]([https://arxiv.org/pdf/1802.01528.pdf](https://arxiv.org/pdf/1802.01528.pdf))

</comment></comment><comment><USER31> Anyone have a suggestion for a good online course in linear algebra?

<comment><USER4> Yes, UIUC offers very good online math courses: [https://netmath.illinois.edu/college/math-415](https://netmath.illinois.edu/college/math-415). There is also a more pure/abstract version of that course available.

If you don't care about accreditation and are patient, sit down with Axler's _Linear Algebra Done Right_ and Hoffman & Kunze's _Linear Algebra_ , in that order.

I would caution you against trying to learn linear algebra using a "take what you need" approach. A random walk approach to learning the material is faster than an accumulation approach, but it's more brittle and prone to confusion. A lot of things which appear to be irrelevant or unnecessary for machine learning (computation or research) can be imperative for understanding or implementing much more complex concepts later on.

<comment><USER31> Thank you! I am interested in the knowledge rather than the credits, so I appreciate the book recommendations :)

</comment></comment></comment><comment><USER32> I have been waiting for something like this for months. This is inconceivably valuable to me. Thank you so much!

</comment><comment><USER33> In the author's example, the function max(0, x) they subsequently differentiate isn't differentiable.

<comment><USER34> It is within the context of distributions or generalized functions ([https://en.wikipedia.org/wiki/Distribution_(mathematics)](https://en.wikipedia.org/wiki/Distribution_\(mathematics\))) but people are often loose on the terminology and tend to just use the term "functions". It's a wonderful topic, with a lot of interesting applications in differential equations and physics.

I just found a quick explanation by Terence Tao about why people are generally loose in this case, meaning that some properties transition nicely from smooth (here, differentiable) top the rough categories by passing to the limit and density arguments: [http://www.math.ucla.edu/~tao/preprints/distribution.pdf](http://www.math.ucla.edu/~tao/preprints/distribution.pdf)

Of course there are exceptions.

</comment></comment><comment><USER35> Might look at the thread

Foundations Machine Learning (bloomberg.github.io)

at

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

There machine learning (ML) is basically a lot of empirical curve fitting. The context is usually with a lot of data, thousands of variables, millions or billions of data points, observations, pairs of values of thousands of independent variables and the value of the corresponding dependent variable. The work is all a larger, more data, version of: You have a high school style X-Y coordinate system and some points plotted there. So, you want to find values for coefficients a and b so the line

y = ax + b

fits the points as well as possible. But, you can do variations, try to fit, say,

log(y) = a sin(x) + b

Or replace log or sin with any functions you want and try again.

The _logic_ , rational support, is essentially as follows: So, take, say, 1000 x-y pairs. Partition these into 500 _training_ data and 500 _test data_. Find the best fit you can, using whatever fits, to the training data. Then take the equation and see how well it fits the test data. If the fit of the test data is also good, then that is your _model_.

Now you want to apply the model in practice, apply the model to data did not see in the given 1000 points. So for the application, will be given a value of x, plug it into the equation, and get the corresponding value of y. That's what you want -- maybe the value of y gives you Y|N for ad targeting, Y|N cancer, what MSFT will be selling for next month, what the revenue will be for next year, etc.

The rational, logical justification here is an assumption (which should have some justification from somewhere) that the x you are given and the y you want for that value of x is sufficiently _like_ the x-y values you had in the original 1000 points.

Okay. Empirical curve fitting to a lot of data to make a predictive model, that is found with training data, tested with test data, and applied where the given data in the application is _like_ the data used in the fitting.

The OP mentions that some people believe that to make progress to real machine intelligence, need more math than what I outlined.

My guess is that to make that intended progress, for all but some tiny niche cases, first need some much more powerful and quite different ideas, techniques, etc. than in the curve fitting ML I outlined.

Yes, there is a chance that with lots of data from working brains and lots of such empirical fitting we will be able to find some fits that will uncover some of the workings of the brain crucial for real intelligence. Uh, that's a definite maybe!

But there is a lot more to what can be done to build predictive models than such curve fitting, empirical or otherwise. I outlined some such in the thread that I referenced above.

So, for the question in the OP, what math? Well, if want to pursue directions other than the empirical curve fitting in the Bloomberg course I referenced above, my experience is -- quite a lot. For the education, start with a good undergraduate major in pure math. So, cover the usual topics, calculus, abstract algebra, linear algebra, differential equations, advanced calculus, probability, statistics. Then continue with more in algebra, analysis, and geometry.</comment>


NSA: Russian agents have been hacking major email program - <AUTHOR> https://www.startribune.com/nsa-russian-agents-have-been-hacking-major-email-program/570842562/ <comment><USER2> 8 months ago they started using an exploit reported and fixed 11 months ago?</comment>


House Grills State Department Over Wassenaar Arrangement - <AUTHOR> https://www.eff.org/deeplinks/2016/01/house-grills-state-department-over-wassenaar-arrangement <comment><USER2> Was ist "Wassenaar Arrangement"? It's an export restriction that impacts software [1]

> In December 2013, the list of export restricted technologies was amended to > include internet-based surveillance systems. New technologies placed under > the export control regime include "intrusion software"—software designed to > defeat a computer or network's protective measures so as to extract data or > information—as well as IP network surveillance systems.

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

<comment><USER3> > as well as IP network surveillance systems.

Wireshark?</comment></comment>


What Are Microservices? [Costs and Benefits] - <AUTHOR> https://www.logicroom.co/what-are-microservices-costs-and-benefits/ <comment><USER2> I think that TFA is underplaying the cost of setting up CI/CD pipelines with any manual review step, as well as simply orchestrating application/service settings between micro services.

Docker and docker tooling in the big clouds has come a long way, but are isolated to that cloud platform. Docker Cloud, imho is one of the nicer options, that allows for multi-cloud and on-prem deployments, but even then doesn't take care of a few issues.

In my mind, there are several things that are needed for a successful microservice stack, beyond the micro services themselves.

        PKI - some means of having a microservice deployment
        request it's own private key cert securely.  Not
        embedded in the deployment asset.  Inter-service
        api requests using signed jwt including a request id
        not to be reused.

        Configuration - environment configuration, A/B testing,
        and other services in the system.  This may need a
        service registry (maybe backed by etcd or similar).

        In-memory cache - something like Redis/memcache on each
        node for local caching of near-term data (IP request
        counts, error counts, other memory cache)

        Persistent cache - kv store backed by db for cached
        records that exceed memory, but can avoid more costly
        lookups.  C*, RethinkDB, Mongo may be good choices
        here.

        Authentication service... something to manage user
        auth separately from the apps/services and act as
        an SSO end point.  OAuth/jwt, etc.

        Auto-updating load balancer... blue/green deploy
        process combined with a load balancer that will detect
        changes and upate itself.

Just getting those details right... not counting other application databases, and the ci/cd is huge. It starts with a secure means of getting one's security context, using that to request other configurations/services to communicate with (not discounting dns-based structures), having those services available to authenticate users, and the ability to securely make requests.

None of the options offers all of this in the box, there are parts, and depending on where/how you deploy this is complex to _very_ complex in terms of getting these underpinnings in place.</comment>


Every Body Goes Haywire - <AUTHOR> https://nplusonemag.com/online-only/online-only/every-body-goes-haywire/ <comment><USER2> I'm pleased to say that I am a _former_ Migraine sufferer.

I've had the condition since I was 17 years old, when the first one hit. It was such an intense pain that I begged my mom to take me to the emergency room -- certain my brain was bleeding since the pain included a number of other symptoms (blurry vision, dizziness, nausea and the like). They sent me home with 1000mg of acetaminophen and basically told my mom that I was probably faking or just had a bad headache. My experience with around two decades of dealing with this illness was that neither regular folks, nor doctors, take the condition terribly seriously. People call their headaches "Migraines" having no idea that there's a difference. There's drugs marketed for Migraine headaches that, in my experience, did very little and were targeted at people who get "bad headaches that htey call Migraine". The best description I could give of how it felt was "like the worst 'brain freeze' you've ever had but instead of ending after a few seconds, it goes on for a few days". But everyone seems to have slightly different symptoms and until reading this article, I wasn't even aware that it was possible to have Migraine _without_ the associated headache (though I had heard about some of the other symptoms that I hadn't experienced myself).

For me, a typical Migraine was 3-days long, twice a month, with increasing frequency during the fall and spring months. I'd have the aura most of the time and the after-effects almost all of the time. I'd been employed, full time, during the entire time that I lived with Migraine and because of its frequency, I rarely--if ever--took time off (try explaining to a boss that you need the day off because you have "a headache"). I'd given a presentation to a room full of coworkers right in the middle of one -- my eyes watering the whole time from the pain. Most of the time, though, I'd figure out ways to function -- sunglasses, staying still, contrast down all the way on the monitor, fasting for the day with frequent trips to the restroom to vomit air.

If normal people don't take it seriously, doctors seemed to take it even less seriously. The first question they'd often ask is "did you miss work because of a headache?" Being too honest, I'd say "no" and they'd stop paying attention or prescribe an anti-inflammatory. A doctor who took me moderately seriously prescribed two different triptan-based drugs with the assurance that "my wife gets these -- when you have an aura, just take one and it'll all go away." The pain was dulled by a huge amount, but they came with enormous side- effects. I would experience an intense sort of "elation" shortly after taking the pill, followed by a depression after the pain was gone (I'm _neither_ of these things, normally, except for a small bit of listlessness after the Migraine had subsided). The medical literature indicated mild variants of these symptoms but this was _anything_ but minor to me. I ended up finding out, by accident, when mixing this medicine with another medicine that affects serotonin, that my body lacks a gene required for properly flushing this medicine out of my system. I was sent to the ER with ~103 degree fever, incredibly elevated blood pressure (I don't remember the number but I remember the look on the nurse's face when she took my blood pressure for the third time with the replaced cuff and got the same numbers), and was treated by staff who _was sure_ I had taken some recreational drug and was having a bad reaction (they were shocked when the tox screen came back clean). It was _probably_ serotonin shock according to a doctor I saw well after this visit, but the ER staff was convinced I had some sort of psychiatric episode or took a drug they couldn't screen for. Regardless, they told me to never take a triptan again.

This incident resulted in me seeing a new doctor who suggested I try a medicine given -- in the past -- to people with epilepsy (and now commonly prescribed for bipolar disorder) called Depokote. Ironically, it was _not_ prescribed to handle Migraine, but rather whatever underlying problem caused my trip to the ER[0]. It was September, a month where I had gotten Migraines weekly every year since I was 17. After a month of taking the medicine I had _no_ headaches. I did a quick google search and the usual web sites didn't say anything about Migraine relief, but a handful of forum posts from people who take the medication had been taking it to manage Migraine symptoms (a search of that medicine a few weeks ago yielded results indicating that the medicine is now prescribed for that purpose). These silly little pills that cost about a dollar for a month's supply are _magic_ as far as I'm concerned. Generally, I _hate_ drugs affect my brain, but I've had no side-effects (unless you consider eliminating Migraine a side-effect).

My apologies for the long comment, but since I know there are others out there who probably have gone through what I went through, I thought I'd share.

[0] Here's where it gets complicated. The ER couldn't figure out _why_ I was sick, but a flush of fluids through my system resolved everything. I was diagnosed as having a psychiatric episode -- something I had _never_ had in the past, nor since. I was also admitted on a US holiday, so staff wasn't so great. I was prescribed this medication on the assumption that I might need to be on a _mood stabiliser_ , which was _absurd_ to me, but _these were doctors_ and I am not, so I listened blindly. I had the genetic test months later after my children had been given a similar test and theirs had indicated a problem with triptans and, sure enough, those were my genes.

<comment><USER3> My partner suffers from sporadic migraines, sometimes getting a cluster of them and then sometimes nothing for months. Symptoms include "snow" and similar odd visual effects, that sound rather similar to what I see when I apply pressure to my eyeballs.

Last time she had one, she told me that her neck always hurt afterward, and I remembered reading about a therapy for migraines that involved paralyzing groups of muscles with Botox, and determining which was the cause through a process of elimination. Removing the muscle was the cure.

I had her lie with her fingertips pressing in at the most painful points on her neck, the nerve clusters most likely, and she let the weight of her head press her the muscles into her fingers for as long as she could tolerate it. When she felt she could deal with it again, she would repeat the process.

Instead of a migraine that lasted for some time, the primary symptoms (visual artifacts) were gone in about five or ten minutes, and the follow-up (headache) symptoms were greatly reduced, she could sleep it off.

Clearly, the causes for her differ from the causes for you, but hopefully this will help someone.

<comment><USER2> That's an interesting point - I had found that getting a very serious massage while I had symptoms had helped them. I didn't get them nearly enough to be able to say "for sure" that it really helped, or if it was just placebo (the original reason I sought the massage was because of reading that it sometimes relieves pain, so that thought was already in my head). Chiropractic also seemed to have an effect but that was so sporadic that I'm convinced it was placebo.

I tend to believe that massage _could_ help, though, because I could reliably _create_ the opposite effect. There were certain places on my neck and shoulders that if I applied sufficient pressure with a single finger, I could increase the pain and other symptoms to the point of inducing vomiting.

I feel for your partner. It's a miserable thing to deal with that very few people really understand or take seriously (I couldn't even estimate how many times someone asked me "Have you tried that Excedrin Migraine? Does it work?"[0] Nope.) Everyone's symptoms vary slightly. For me, the best thing that could be done was to leave me alone in a cold-ish dark room.

I didn't get the "snow" effect, but I got an aura -- mine was a wavy blurriness around the periphery of my vision that seeped slightly into my direct vision (the "waves" were visible every heart beat but never pierced into my direct line of sight). Even on my new medication, I still, occasionally have had a very mild version of the aura show up for a couple of minutes and then just fizzle out. I'm convinced I'm witnessing myself avoiding Migraine at that moment, but I don't know enough about how this medicine works (nobody seems to) to say that for certain.

[0] I would get quite irritable when experiencing symptoms but I don't think I ever, once, replied sarcastically with "Oh, you mean that medicine that's advertised on TV just about every commercial break? No, I've been living under a rock for a few decades and suffering needlessly, apparently." I always wanted to.

</comment></comment></comment><comment><USER4> I used to suffer from CFS, and my wife used to get almost weekly migraines. (We're now both symptom free). In both our cases, chronic stress seemed to be the cause.

From what I can see (having talked to many other patients and researched it for the last 16 years), the depression/migraine/CFS/fibromyalgia cluster of symptoms appears to be the brain's way of telling you to stop doing what you're doing, i.e. you should remove the stressors. That's not to say that all migraines are caused by stress, but it does seem that it is likely a significant factor for many people.

I dislike the notion perpetuated in this article that if your headaches or fatigue is psychosomatic (due to stress) then you're either "weak", or it's "all in your head" (i.e. imaginary). I'll admit I probably wouldn't be able to work in a stressful job in NY with only a few hours sleep a night -- like the author of this article was trying to do -- without suffering from some kind of stress-related illness. I don't think that makes me weak...it's simply that my brain won't let me work in an excessively stressful situation like that if it doesn't appear to be in my best interests (even if I really want to do it). The advantage is that my CFS prompted me to quit a boring job and create my own internet startup, doing something that nobody else in the world is doing (now I have about 20+ competitors).

<comment><USER5> Given that we now think that the brain flushes out waste products during sleep [0][1] and that lack of sleep is associated with all kinds of real problems [2][3] (both ideas supporting one another) "psychosomatic" really is something quite physical.

As an IT guy who has taken hundreds of hours of medical and several neuroscience courses I can't quite wrap my head around the idea of claiming something is "mental" or "psychological" and mean it as a closing statement. And "stress" _is_ physical. If it was just and "idea" or abstract concept you would not feel anything. It only becomes "stress" when physical things happen inside of you.

[0] [https://www.nih.gov/news-events/news-releases/brain-may- flus...](https://www.nih.gov/news-events/news-releases/brain-may-flush-out- toxins-during-sleep)

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

[2] [http://www.npr.org/sections/health- shots/2016/01/04/46062060...](http://www.npr.org/sections/health- shots/2016/01/04/460620606/lack-of-deep-sleep-may-set-the-stage-for- alzheimers)

[3] [http://healthysleep.med.harvard.edu/healthy/matters/conseque...](http://healthysleep.med.harvard.edu/healthy/matters/consequences/sleep- and-disease-risk)

<comment><USER4> Firstly, psychosomatic means physical symptoms due to psychological cause, so if there was no physical thing happening inside the body, it wouldn't be psychosomatic. (It would just be psychological).

There are many types of stress, e.g. physical (exercise), viral, or psychological, and they all have a similar effect in the brain (i.e. all of those stresses activate the HPA axis).

From what I can see, the type of shutdown due to chronic stress that we see in CFS and similar conditions is likely due to the central governor[1] or Boksem's cost-benefit analysis centre[2] (which may actually be the same brain areas) deliberately generating fatigue due to excessive negative stress. So the mechanism isn't "lack of sleep causing damage, resulting in fatigue", it is more along the lines of "central governor sees that we aren't getting enough sleep, and then deliberately generates fatigue to tell us we need to sleep more". So even though it's not a psychological primary cause, it's probably fair to say that the fatigue is psychosomatic because the brain is doing a psychological determination based on a physical input. (The same would apply for excessive exercise resulting in overtraining).

If you prefer, you could call it "functional" rather than psychosomatic. I prefer not to get caught up on terminology, and instead concentrate on what's actually happening in the body.

[1] [https://www.ncbi.nlm.nih.gov/pmc/articles/PMC3323922/](https://www.ncbi.nlm.nih.gov/pmc/articles/PMC3323922/) [2] [https://www.researchgate.net/publication/51426280_Mental_fat...](https://www.researchgate.net/publication/51426280_Mental_fatigue_Costs_and_benefits)

<comment><USER6> To me this is a bit of a cop out in explaining things. Clearly mental state can affect physiology and vice versa. Placebo effect is a prime example.

If doctors or professionals can't explain things, they should admit it rather than trying to claim it is in people's head and ignore it or make it seem like it's below them.

Placebo can have as much effect as some medicines and its an aspect of medicine that I feel should be taken far more seriously. I see no reason that mental state shouldn't be taken into account as much as physical (other than the fact that its more difficult to measure).

</comment></comment></comment></comment><comment><USER7> I appear to have them under control now. I have been on a Ketogentic (< 20g carbs) diet (mainly to lose weight) and lack of migraines is one of the pleasant side effects. I've had two since starting months ago but I may have had too many carbs those particular days. I'd have almost one a week if stressed. The last two were so mild that I didn't bother with my regular Advil.

Not saying others _will_ have the same experience but Keto is one treatment for various neurologic issues. I certainly didn't have them as bad as the author or others here. But it may be an avenue to consider. It is nice to not fear the zigzags.

Best wishes to all sufferers of migrains. b

<comment><USER8> That's fascinating to me. I find that eating a high protein, low-carb breakfast is a fast track to a migraine for me. I can feel it coming on and grabbing some carbs will fight it off. I wonder why it's the opposite for some people?

</comment></comment><comment><USER9> I grew up with migraines. Frequency ranged from once a week to once every few months, with the average being 1 or 2 a month. Mild ones left me sleeping near the toilet. Some were so bad I truly believed I would die, even though I would tell myself I've been through it before..

Then I moved to California (from Oklahoma), and I haven't had a migraine since. In OK I would also get these strange allergy attacks where my nose wouldn't stop running and my head would be stopped up for a day or two, to the point I couldn't concentrate enough to work. Those stopped after I moved as well.

The "allergy level" between the two states isn't significant. OK is a little higher, but not huge. So I think my issues may have been related to specific flora, although doctors never suggested anything like that. I think my favorite line from the blog is:

> Although migraine symptoms have been described since antiquity, doctors > still struggle to understand their cause.

</comment><comment><USER10> I have occipital neuralgia (damage to nerves in the back of the head), and the nerves of the head/neck are common triggers of migraines. Fortunately I don't have headaches or migraines, just pain, but people who have both are profoundly miserable I can assure you as I'm in a lot of the Facebook groups. They are essentially disabled, and mostly bedridden with no end to their condition in site (most are young and it's not something you die from). Furthermore, there isn't a lot of sympathy from the outside world as most people don't really believe chronic pain or chronic headache is even possible. It would be nice if there was a test to show pain or confirm a headache to substantiate these horrible conditions.

</comment><comment><USER11> I have migraines and epilepsy.

> I collapse under the side effects of my medication; my mom tolerates hers > with grace and determination.

My body just will not tolerate medication. I'm not on any medication right now. But it was pretty much a guarentee I would get 90% of the side effects. My mom is the same way. In addition my liver is so thoroughly trashed from anti convulstants, that I need double of anything for it to have an effect.

This whole article really hits home except for: > TO THIS DAY, I GUARD A HIDDEN HOPE that I will receive a new diagnosis, one that clearly explains the severity of my symptoms.

I'm done trying, done with doctors visits new medications. I've been in hospitals since I was 2, it's time too enjoy life as much as I can and push forward. The bigger problem has been my friends, they constantly badger me to go get help.

There is one downside to this. I went to the ER a few weeks back. I have a rare migraine disorder (Hemiplegic [mimics a stroke]). The doctors said I was a hypocondriac, who was making up a migraine condition, and placed me under psych evaluation. Because I didn't have a history. Which was because all the medications made it worse.

> Chronic migraine creates all sorts of discomfort and anguish, but what has > been hardest to bear is not knowing what this means for my future. I don't > know how debilitated I'll be or who will take care of me or what I'll do > about money.

We are given a set hand when we start life. You'll discard some, pick some up. But there are some cards you're stuck with. If you have something chronic, you may not be able to resolve it. If you do great, fantastic. Find small little tricks to get you by, and work with it.

Make the best of each day, do everything you can. Don't let it hold you back. I've found the hardest part is not on me. I feel practically discouraged, when I get a spike of pain, or become paralyzed. People rush me, because they care. But just let me be. Constantly being coddled makes me almost regret trying certain things. I feel really lucky now, to have a group of friends who are like. "Him yeah he's fine just seizing. He'll come too in about ten mintues."

We have so much to learn about neurology. I've bounced around diagnoses. The resolutions have been largely outside of western medicine. The biggest change came about five years ago. An acupuncturist had me take a genetic food allergy test . I had to pay out of pocket. But after cleaning up my diet, my migraines were cut in half. I get a cock eyed look from doctors, when I say my treatment is this natural thing, or dietary.

<comment><USER12> > after cleaning up my diet, my migraines were cut in half. I get a cock eyed > look from doctors, when I say my treatment is this natural thing, or > dietary.

If your 'natural' treatment is just dietary change, that is actually a very valid way to reduce migraines. Your doctor should know that.

Some chemicals in foods are known and some others just suspected to trigger migraines, for instance Tyramine is highly suspected of triggering migraines. For me alcohol has a huge impact on the severity of migraines or just triggering them all together. I've eliminated alcohol completely because of it.

</comment></comment><comment><USER13> The first time I got scared about my migraines and decided to do something was after my first silent migraine. Before this I had just had them about twice a year lasting roughly 3 days.

My silent migraine started with pins and needles in my tongue, speading slowly to the rest of my jaw and then finger tips. Then I lost sight in the parts of my vision where I was focused, it became grey and bright around the edges. I still had peripheral vision. The last symtpom was what I could only describe as temporary dyslexia. I was reading sentences aloud and skipping whole words or moving them from the start to the end. It sounded like gibberish but in my head it somewhow made sense. I started to panic until some frantic googling brought up these types of migraines. Which is when I instantly recognised all my symptoms as familiar but without the headache and light sensitivity seemed very alien and very scary.

<comment><USER13> I also asscociate them with the more or less light as they seemed to occur at the start of spring or end of autumn.

</comment></comment><comment><USER14> My migraines occurred roughly twice a year for roughly 20 years. The symptoms have been sparkling lights in vision, effective blindness and incapacitating confusion lasting about eight hours. Extreme pain and vomiting only occur about half the time.

There is no connection to stress but most occurred when out in glaring sunlight. One happened when a kid flashed a laser pointer into my eyes from a distance. They maybe connected to lack of sleep.

I have not had any for about 2 years at which time I began taking Citalopram and 'Breo' for other conditions. It is hard to imagine how those two would make any difference but I post this in case someone finds it useful.

</comment><comment><USER15> I know someone who lives with severe chronic migraines. She writes about her experience when she can on thedailyheadache.com. Similar to the author, she searches desperately for triggers, treatments, and even moved to a drier climate.

My sister-in-law gets debilitating multi-day migraines. She too searches desperately for triggers, and has a hard time with medicine.

I get cluster headaches for a couple of months every two years or so. Although they are extremely painful, it's infinitely easier to cope with an episodic affliction than chronic pain with no end in sight.

</comment><comment><USER16> I used to get migraines when I was a teenager. Full aura and the absolutely unbelievable throbbing headache. I have a vivid memory of once getting one from eating chocolates¹ and having to sit in a dark room with no sound because practically anything would add to the throbbing.

For what it's worth, they just went away when I got older. Haven't had one in over a decade.

¹ Tasted great, though, and I remember eating the variety (which I remember being called 'Praline Leaves' or something of the sort). Never found it again.

</comment><comment><USER17> Did amy of the excitement around magic mushrooms as a migraine treatment ever pan out?

<comment><USER18> I think they were tested as a cluster headache treatment, not migraines

</comment></comment><comment><USER19> I am not a migrane sufferer but I do work with two people who are sat next/opposite me that do get them. I also get a cat that will visit me at my desk. I don't think the cat gets migranes however there have been times when all the migraine and allergy problems of the world have been blamed on my furry friend. So the haywire craziness of my colleagues' immune systems is entirely due to a cat, even though there is no correlation between 'migrane days' and 'cat visit days' \- makes sense to me, particularly since the migraines predated the cat.

I just quietly take my desk cat to another colleague's desk, far away from the allergy zone, however, I would far prefer the company of the cat to some of my 'haywire bodied' workmates... I sometimes want to say 'you live in the middle of a ring road in one of the most polluted cities in Europe breathing diesel particulates all day long and you think this cat is causing your migraines!'

I live in the suburbs, to the west of the city, not on a major road. There are no busses thundering by my door. I walk/cycle in to work rather than spend 2 hours a day packed into public transport. My immune system has to deal with cat hairs not the combined toxic soup of pollution that goes on in the city or a smorgasbord of medical pills to counteract the allergy.

I do understand that people can have allergy haywire hell from birth and that things like cats are a serious allergy problem. I do know how debilitating these things can be, i.e. can't really work. However, I feel that my colleagues are in a horrible catch-22 of medications and lifestyle choices. If they could somehow move to somewhere where breathing was possible they might not have that particular continual assault on their system. But it is about assaulting the system in the right way, so more cat is probably needed rather than the 'OCD' everything must be sterilised clean with chemicals approach to the home.

But it is too late, the die was probably cast in early childhood for my two colleagues and they are condemned to spending the rest of their days 'avoiding cats', taking the pills and doing whatever the doctor says. If I did a house- swap with them I doubt that they would be miraculously cured (or that I might suddenly start getting headaches and rashes).

My colleagues will probably bring up children that never play with cats and where every surface is chemically blitzed clean. Their children will probably grow up in a world where taking all the pills makes sense and things like cats/flowers/hay-lofts/soil are verboten. They will probably blame genes rather than 21st century lifestyle choices when trying to work out what has gone wrong. The problem will move on to another generation, more money for big pharma, nothing solved.

</comment><comment><USER20> Also, see Oliver Sack's excellent book: [http://www.oliversacks.com/books-by- oliver-sacks/migraine/](http://www.oliversacks.com/books-by-oliver- sacks/migraine/)

</comment><comment><USER21> Modern medicine works great as a framework to treat pretty much all diseases/conditions. But I feel alternative forms of medicine are not viewed as viable forms.

Anyone has experience with alternative forms of medicine (homeopathy,ayurveda) for migraines and other conditions?

<comment><USER17> Why do you feel that alternative medicines have not been given due consideration? See quote below from WP.

I'm always surprised how easy it is to convince ourselves to try something when we don't have logical reason to do so.

Maybe it would be helpful to share the reasoning that leads you down this path?

"Despite significant costs in research testing alternative medicine, including $2.5 billion spent by the United States government, almost none have shown any effectiveness beyond that of false treatments (placebo). Alternative medicine has been criticized by prominent"

<comment><USER22> It's worth noting that one of the winners of the 2015 Nobel Prize in Physiology or Medicine was a longtime researcher in Traditional Chinese Medicine, who developed a malaria treatment based on a TCM practice[1], saving millions of lives.

But there's another kind of evidence that is at least somewhat suggestive of some degree of efficacy: the market.

In spite of all the studies claiming to disprove alternative medicine, and in spite of all the ridicule from skeptics, millions of people spend billions of dollars on natural/alternative treatments.

Some of them (including some I know personally), are more highly educated, and far more science-literate than the average person, and the average "skeptic". They certainly know how to tell the difference between a placebo and a genuine benefit.

Which is of course not to say that all CAM practices are always beneficial for all people/conditions.

But like everything in the natural world, human health is complex and multi- faceted, and such rigid, simplistic positions as "alternative medicine is never more effective than a placebo" rarely turn out to be completely true.

[1] [http://theconversation.com/is-the-2015-nobel-prize-a- turning...](http://theconversation.com/is-the-2015-nobel-prize-a-turning- point-for-traditional-chinese-medicine-48643)

<comment><USER17> 1). It is false, your implication that alternative medicine won someone a Nobel Prize. Artemisinin has scientific, peer reviewed research to support its claims. It would been impossible for Tu Youyou to win without real scientific evidence. The last award to lack much science was invention of the Lobotomy, which was called an "astounding error of judgment"

2). "The market" is provably an unreliable source of evidence given the historic success of snake oil and the popularity of many treatments later found to be dangerous.

3). Your friends absolutely cannot reliably detect a placebo effect. No one can, that's the whole reason to double blind tests.

4). Please don't misquote me. I did not say alternative medicine is "never more effective than a placebo". The statement was "almost none" which is true.

5). Science is not "ridged and simplistic". It certainly can be improved and the great part is when practiced properly it allows for the possibility it is wrong and self corrects.

<comment><USER22> Your point seems to be that any efficacy of non-mainstream medical practices is so minor and marginal that it should all be ignored.

Please understand my point is simply that a somewhat more balanced and open approach is warranted, as it may lead to more breakthrough discoveries like Artemisinin.

To your points:

1) _Artemisinin has scientific, peer reviewed research to support its claims._

Yes, of course, I agree completely.

But the point is that people who push the view that _any medical practice that comes from the natural /traditional/alternative medicine world is by- definition false and harmful snake-oil_ are overlooking the fact that there are several important medical breakthroughs that had already been practiced in the medical fringes for years/decades/centuries before anyone in the mainstream got around to researching them.

Other promising recent examples include:

\- the microbiome/neurology link [1],

\- the use of infrared light to treat neurodegenerative illnesses such as Alzheimer's, Parkinson's, MS and ALS [2], and

\- the use of low-intensity pulsed electromagnetic fields to shrink tumors [3].

2) _" The market" is provably an unreliable source of evidence given the historic success of snake oil and the popularity of many treatments later found to be dangerous._

Note I said "at least somewhat suggestive of some degree of efficacy". Yes of course the market is fallible. It comprises at least 7 billion people, many of whom are delusional. But some of them are also discerning, intelligent, educated, science-literate people who, having exhausted all the options offered by mainstream medicine, seek an alternative and find it extremely beneficial.

3) _Your friends absolutely cannot reliably detect a placebo effect. No one can, that 's the whole reason to double blind tests._

Sure, but I'm talking about cases where someone has suffered a chronic condition like migraine or CFS or fibromyalgia for many years, and has gone through 5, 10 or more treatments (both mainstream and natural), all without success, then finally they discover a treatment that permanently relieves their issue. Someone who has been through that (of which I am one) knows how to tell whether or not a treatment is effective.

That said, the validity of your comment depends on exactly how you define 'placebo'. If you were to respond that these conditions are likely emotional in origin, and that the treatment just relieved the emotional issue, I would agree with you. However, in these cases there are have still be physiological symptoms that corrected after the treatment (which could be verified with pathology testing).

It's at this point you risk descending into a debate about whether placebos can actually have physiological effects or are rather just imaginary feelings of wellbeing [4], at which point I lose interest in the discussion, as my only real concern is in getting well and helping others do the same, not wasting time in arguments over definitions.

4) _Please don 't misquote me. I did not say alternative medicine is "never more effective than a placebo". The statement was "almost none" which is true_

My apologies, that wasn't meant as a quote of yours, but rather a characterisation of much of the standard position I'm used to hearing from avowed "skeptics".

But the problem with taking the "almost none" position with medicine is similar to the "almost all startups fail" position, which is that the exceptions, whilst they may be very rare, are also the most important cases.

It's quite easy to be highly successful predicting the failure of startups; you just predict the failure of every new startup to launch, and achieve a > 99% success rate.

But the problem is that you'll miss the next Google, Facebook, Airbnb etc. I.e., the times you're wrong are the times it matters most to be right.

In my experience and observation, the case is very similar with medicine.

[1] [https://www.ncbi.nlm.nih.gov/pmc/articles/PMC4662178/](https://www.ncbi.nlm.nih.gov/pmc/articles/PMC4662178/)

[2] [https://www.ncbi.nlm.nih.gov/pmc/articles/PMC4707222/](https://www.ncbi.nlm.nih.gov/pmc/articles/PMC4707222/)

[3] [https://www.ncbi.nlm.nih.gov/pmc/articles/PMC3770670/](https://www.ncbi.nlm.nih.gov/pmc/articles/PMC3770670/)

[4] [https://www.sciencebasedmedicine.org/is-harnessing-the- power...](https://www.sciencebasedmedicine.org/is-harnessing-the-power-of- placebo-worthwhile-to-treat-anything/)

<comment><USER17> >"people who push the view that any medical practice that >comes from the natural/traditional/alternative medicine >world is by-definition false and harmful snake-oil"

I don't see prominent people in medicine saying this at all. They don't mind if you pull the medicine out of your ass, as long as it's efficacy and safety is tested with some rigor before advocating it.

>people who, having exhausted all the options offered by >mainstream medicine, seek an alternative

This practice is dangerous and has resulted in many negative outcomes. This is navigating through a minefield of unsupported claims, no quality evidence, anecdotes, and people trying to scam you. Very difficult without professional guidance.

>"Almost all startups fail too..."

False equivalence. Most failed startup don't kill people. Besides, no one said alt medicines shouldn't get a shot. The promising leads will continued to be followed. It just has had an extremely low hit rate.

<comment><USER22> Just note the words/tone you use when addressing this topic:

\- _They don 't mind if you pull the medicine out of your ass_

\- _This practice is dangerous and has resulted in many negative outcomes. This is navigating through a minefield of unsupported claims, no quality evidence, anecdotes, and people trying to scam you._

\- _Most failed startup don 't kill people._

Think about how much harder it makes it to get any proper research done, when this is the attitude held and promoted by people in the mainstream science community.

It's all very well for people to look at the artemisinin case and say "yes well it's only thanks to modern science we could establish the efficacy of that". Which is true, but it's also only because of the people who avoided/resisted succumbing to the zealotry of mainstream science that it was able to get on the radar of mainstream science at all.

In truth, serious harms and deaths as a direct result of alternative medicine are very few. The overwhelming majority of natural/alternative medicine involves educated people undertaking low-risk treatments for non-life- threatening conditions, and experiencing an improved quality of life as a result - hence they keep going back.

Primary examples are: yoga, meditation, hypnotherapy, massage, muscular/structural adjustment (osteo/chiro) - all of which work to relieve stress/trauma and release the effects of stress, leading to a long-term reduction in stress-related illness; nutrition, probiotics and detoxification treatments to improve digestion and metabolism.

That list probably captures over 95% of the natural/alternative medicine. Practitioners of these therapies are trained, registered, and answerable to regulators, professional bodies, insurers, clients, society and their own conscience. Unethical/incompetent practitioners are exposed and put out of business. Where serious harms or deaths occur, it is front page news.

As for efficacy, for these treatments I maintain that the market is a strong indicator. People who experience benefits keep going back, and in growing numbers.

But there are also plenty of studies that indicate that people who engage in the above practices enjoy better health over the long term. Here's a study that demonstrates improvements in neurotransmitter levels after 12 weeks of yoga [1].

Meanwhile, deaths just from prescription opioid painkillers numbered over 28000 in the US in 2014 alone [2]. My own experience makes me certain that at least some of those people could have avoided that fate had they undertaken some of the treatments mentioned above.

Please have a think about what instinct is really driving you here. I understand it; I spent several years as a fanatic of Dawkins and his atheist/materialist mates; indeed that's actually what started me on the path to where I am now, because at least I (unlike many) picked up the importance of questioning everything and deeply examining all my own beliefs, assumptions and biases.

But the attitude you're exhibiting here, and the fact that it is so dominant in the mainstream scientific world, is actually holding back the discovery of more breakthroughs like artemisinin, and thus is slowing the progress of science.

[1] [https://www.ncbi.nlm.nih.gov/pmc/articles/PMC3111147/](https://www.ncbi.nlm.nih.gov/pmc/articles/PMC3111147/)

[2] [https://www.cdc.gov/drugoverdose/data/](https://www.cdc.gov/drugoverdose/data/)</comment></comment></comment></comment></comment></comment></comment>


Desertec - <AUTHOR> http://online.wsj.com/article/SB125692589804119121.html

<comment><USER2> Don't use weird headlines, use the actual ones. This one should have been named "Sahara Solar-Power Consortium's Plans Advance".

</comment><comment><USER3> Are they really going to use high power direct current transmission lines? Isn't that the least economical way to transmit power?

<comment><USER4> high-voltage direct current

<http://en.wikipedia.org/wiki/High-voltage_direct_current>

Quote: ' For long-distance distribution, HVDC systems are less expensive and suffer lower electrical losses '

</comment></comment><comment><USER5> "It was sea power and air power on Caladan," he said. "Here, it's desert power. The Fremen are the key."</comment>


GitHub's language detection is broken - <AUTHOR> https://github.com/github/linguist/pull/748#issuecomment-37633185 <comment><USER2> Why don't they just let project maintainers say, "This project contains x, y, and z" or something? That'd at least let them get a leg up on doing the categorization right and I don't think many people would mind _having_ that capability.

<comment><USER3> +1000. Github routinely detects the wrong language for my projects, and there is no way to manually override it. My take is this: If you want to auto-detect the language, fine... but let the owner of the repo override your detection when it's wrong.

It's probably also a bug to even have the notion of "a language" for a repo given the burgeoning polyglot programming trend. So many repos these days contain multiple languages, especially when you consider javascript, that I question if it even makes sense to say 'This project is in language X' at all.

Like you say, the best option really would be to let the repo owners / maintainers just specify this stuff. They are, after all, the ones who know.

</comment></comment><comment><USER4> I think the idea of automated language detection is pretty cool, but why doesn't github just give you the option of correcting it, or labelling it with the language you prefer?

For example, I've got a javascript modules in repositories. For each module, I make a demo version to show what the module does, and that demo includes a bunch of css. Apparently, there is more css than their is Javascript, so GitHub labels the module as css, but the important part isn't css, the important part is the javascript. In order to resolve this, I've had to move the css into a different repository, and ignore it in the javascript repository. Seems like a long way around, when all I want to do is correct them and say that the module is actually a javascript module.

<comment><USER5> Language detection as discussed in the link is per-file. I don't think overriding individual files makes sense since it's likely to be more trouble than it's worth. But I can understand the desire to change the detected language of the project.

<comment><AUTHOR> How 'bout a project-specific property list that looks something like this:

.rb=RealBasic .m=Mercury .pl=Prolog .js=SomeCrapOrOther …

<comment><USER5> Seems like more effort than it's worth still to deal with project-specific settings. AFAIK the only two things this practically affects is syntax highlighting and repository stats. That approach would be a good tradeoff though if things are important enough.

</comment></comment></comment></comment><comment><USER6> This 'lewellyn' person seems to be complaining about the lack of support for the language Limbo, a language for the Inferno OS. Both seem quite outdated and out of use. He also complains about how Github is focusing on 'cool' kid languages. Which I am guessing refer to modern, popular languages (If this is the definition of cool, then yes, they are.) Which, if I was Github, I would do the same. It's called priorities. I kind of get the vibe that lewellyn is some kind of 'hiptser'. His obscure language is better than the 'cool' kids simply because he's using it. I also would phrase it as "GitHub's language detection is broken", it's merely missing a feature/language.

<comment><USER7> I suspect his - rather labored - point is that there are multiple use cases to show that the design of Linquist's configuration is flawed as a rule and not an exception, and the lack of attention paid to this particular issue is perhaps indicative of a more general Github attitude towards the less trendy languages and technologies out there.

<comment><USER8> Which I think is an uncharitable way of saying "Github prioritizes working on things that will impact the most people."

</comment></comment></comment><comment><USER9> Their language detection is indeed terrible. I have a repository ([https://github.com/jperkin/pilights](https://github.com/jperkin/pilights)) which is entirely composed of shell scripts and a single markdown README. GitHub's analysis?

      Perl 83.5%	  Shell 16.5%

There is not a single .pl or .pm file, nor a single mention of 'perl' anywhere in the repository, and all scripts begin with #!/bin/sh.

A number of my other repositories have similar problems, but this one is by far the worst.

<comment><USER10> Sorry, I see a huge blue bar saying 100% shell.

<comment><USER11> Earlier this morning when I looked it looked like OP said...it looks like something has changed in the three hours or so intervening.

<comment><USER9> Huh, yes, they appear to have coincidentally fixed it since I wrote that comment. Maybe I need to start reporting all GitHub bugs as Hacker News comments...

</comment></comment></comment></comment><comment><USER12> Inciminated comment: [https://github.com/github/linguist/pull/748#issuecomment-374...](https://github.com/github/linguist/pull/748#issuecomment-37418098)

> if you'd like Mercury language detection on GitHub then with the current > implementation of Linguist you need to pick a different (unique as > Objective-C already defines this) primary_extension and add .m to the > extensions array which will force Linguist into using the other detection > methods mentioned above.

<comment><USER13> what, then, is the point of the primary_extension field?

EDIT: or as I like to yell at Github for Windows when it can't revert out of a merge conflict "WHAT IS EVEN THE POINT OF YOU?!"

<comment><USER14> It's just a design error in the original implementation where linguist assumes that the "primary_extension" for any particular language will be unique among all primary_extensions. Obviously that was a mistake, but that's where we are. The comment that set people off was perhaps poorly worded, but it was an honest suggestion to work around the design bug.

<comment><USER13> A better suggestion: fix the defect. Just delete primary_extension. At best, it does nothing that the extensions array can't do, as it doesn't appear at first glance that any check to primary_extension does not also include a check to extensions.

At worst, it is confusing to implementers and requires chicanery to work around... which is exactly the case we're in. We're in the worst case scenario for this bit of code, and there is no upside to its best-case scenario. Just delete the code.

<comment><USER15> I bet it's not as easy as "just delete the code". They will probably have to do quite a bit of refactoring to remove this, followed by a probably even larger amount of testing.

Long-term this is probably the right solution, but why go through all this trouble right now if there is a simple workaround? It seems like the only problem right now is a few people's pride.

<comment><AUTHOR> How much you wanna bet? ([https://github.com/github/linguist/issues/985](https://github.com/github/linguist/issues/985))

<comment><USER15> If I'm reading this right all this does is define the first extension as the primary extension, which still has to be unique. So they would still have to use a different extension as the first one in the list, it just wouldn't be called "primary" anymore. How would this help?

<comment><USER16> There is no unicity check anymore; I just kept the first one special because some private code at GitHub seems to rely on the primary_extension property for the Gist editor. As I can't hack this (it is private), I can't remove it entirely.

</comment></comment></comment></comment></comment></comment></comment></comment><comment><USER17> I have a few Perl projects on Github that uses Bootstrap. Main language (according to Github): Javascript.

I expect that Javascript's github popularity ranking is (a little bit) inflated due to such issues.

<comment><USER3> I expect it's a _lot_ inflated. I also have repos that are primarily Groovy, but show up as "Javascript" due to the presence of JQuery, Bootstrap, etc.

<comment><AUTHOR> Unfortunately, until this core issue is fixed, users can't really submit further pull requests to fix the other issues which would correct the "inflation" we all know and hate.

</comment></comment></comment><comment><USER18> I've been in the programming trenches since early 90's fluent in 5 languages at the production level and have to say I have never heard of the language 'Limbo'. I don't fault GitHub one bit.

I suppose I could Google it and act like I know… naw

<comment><USER19> I'm pretty sure there's no one with an encyclopaedic knowledge of programming languages. The industry is enormous, and just because you haven't heard of it doesn't mean that it's irrelevant. "Niche" is not the same as "irrelevant".

And even if it WAS irrelevant and only important to a very small number of people, that doesn't mean it can be ignored.

<comment><USER20> >And even if it WAS irrelevant and only important to a very small number of people, that doesn't mean it can be ignored.

I don't follow. That sounds like the exact criteria for something to be ignored.

<comment><USER13> This really explains SV's homeless problem.

</comment></comment></comment></comment><comment><USER21> I don't really care about Limbo, but GitHub seems to think my .m files are all M(UMPS) files, and not Matlab files, the most obvious choice. Highly annoying.

</comment><comment><USER22> I don't get it - why is a bunch of people trolling the github project with fairly irrelevant arguments interesting? Could someone who upvoted this explain the logic?

<comment><USER23> How is having a differing opinion "trolling"? Seriously, this word has lost all meaning at this point.

<comment><USER24> Ignoring the suggested workarounds (setting a unique primary extension and then having the correct extension in the array, for instance) and continuing to rampage in the comments in an attempt to stir up the masses seems like the canonical example of trolling an online community.

<comment><USER23> Except he actually has a point. GitHub's default behaviour is broken.

In my years of experience online, trolling was specifically riling someone up by saying things the troll doesn't really believe.

Trolling isn't disagreeing that a workaround is sufficient to ignore an actual issue. But that's just my opinion.

<comment><AUTHOR> "Troll" is like "terrorist" these days. It has absolutely no semantic content beyond "person I disagree with about something".

</comment></comment></comment></comment></comment><comment><USER25> While it is unfortunate that a pull request on this project has been around for 5 months without much progress, I think the commenter is being a bit dramatic. He is acting as if GitHub is blocking all commits with Limbo code. The language can still be under version control, it just might not have syntax highlighting and its own color in the repo stats bar.

GitHub isn't discriminating against certain programmers. Stay calm and keep coding!

<comment><USER26> > it just might not have syntax highlighting and its own color in the repo > stats bar.

It is discriminating, and harmful to all programmers. We need to be able to easily search for these lesser known languages – they are important cultural works. The commenter points out: "Limbo ... seems to have heavily inspired Go (which is currently extremely fashionable)". We are worse off for not having our history readily accessible.

</comment></comment><comment><USER27> All they are asking is to arbitrarily specify some other extension as the "primary" extension and have ".m" as another extension. Users will still see the same end result.

<comment><AUTHOR> Unless they use gist.

</comment></comment><comment><USER28> I miss Mac OS Classic Filetype/Creator codes... Filename extensions are such an ugly hack.

<comment><USER29> Great example of worse is better in action.

</comment></comment><comment><USER30> Could they use Bayesian classifiers? trained on a corpus of different languages, primarily concentrating on the symbols used in the language.

</comment><comment><USER31> I think if I was writing a language detector, it would have these features:

\- learning heuristics based on user suggestion.

\- extension filtering to differentiate similar languages.

\- the algo would use prominence and placement of white space and non-word characters to create the DNA of a language. If the language scores below a threshold against the DNA, it doesn't presume, it asks the user. If a language scores high against this DNA, it still allows used override. Whenever a user would submit their indicator, its file source would be used to train the heuristic.

<comment><AUTHOR> This is because you likely think before you code.

</comment></comment><comment><USER32> > My esoteric programming language isn't properly supported by the popular > kids' web tool that I'm likely not even paying to use in the first place. > I'm OUTRAGED!

Yep, seems about right.

<comment><USER33> Also, this is untrue. Omgrofl is supported on GitHub, even if nobody uses it.

</comment></comment><comment><USER34> What's interesting about this PR is that this case was actually one of the reasons that I created [http://www.gitignore.io](http://www.gitignore.io). GitHub's original repo for .gitignore templates had nearly 1000 open PRs until around Oct 2013 so I built my own repo that would actually accept PRs. Since then, a few employees have worked on accepting PRs, but I had a similar feeling of frustration. Unfortunately, the OP can't just fork this repo because its features are integral to how GitHub works, where as I was able to hack around the system and create a separate product.

</comment><comment><USER14> The rant linked to appears to misunderstand the problem and the workaround. @arfon admits there's what amounts to a design bug in Linguist, and so to identify ".m" files, you have to identify a different extension as the "primary" and put the real extension into the "alternate" list. That's a hacky workaround, but it would make the pull request work.

The alternative is to fix the design issue. But that's going to be a lot harder and require more than a few days.

<comment><USER35> @arfon doesn't admit that there's a bug, rather he says that "requiring a unique primary_extension isn't really a 'bug', rather it's a consequence of how language detection works in Linguist."

The work to fix the design issue was already done by @nox, who submitted a pull request which is still open: [https://github.com/github/linguist/pull/985](https://github.com/github/linguist/pull/985)

<comment><USER29> I guess the charitable reading is "this isn't a bug, it's more of a bad design choice, and we can't just fix it overnight".

But I honestly can't tell if that's what he meant, or if it was more of a "not my problem" type of response.

<comment><AUTHOR> Except that it was totally fixed overnight. No, wait. Not overnight. Over two hours.

Of course that PR isn't being accepted either.

</comment></comment></comment></comment><comment><USER36> I can agree that the detection is broken. C++ gets often recognized as C. PHP with some CSS file gets recognized as mostly CSS, etc.

Personally I'd like to have a fixed language that I can set and that the search will use. Next to that, it would be fine for me to statically show what the repository contains, but please use a better language detection, just going by extensions is quite naive.

<comment><USER16> > C++ gets often recognized as C.

The disambiguation test for C++ headers is ridiculous:

          matches << Language["C++"] if data.include?("#include <cstdint>")

<comment><AUTHOR> Well, I expect that's why so much C++ is misrecognized. Not enough people write valid C++, in Github's narrow world view. :)

</comment></comment></comment><comment><USER37> I wish I could pick the language so I could upload shell scripts without extensions, but it doesn't even read the shebang line.

</comment><comment><USER38> Sorry, but was there an actually something useful in that comment? I couldn't tell over the 6 paragraphs of childish moaning.

</comment><comment><USER13> Okay, but the automatically updating comments view is pretty cool. I didn't know Github did that. That is pretty awesome.

<comment><AUTHOR> And that would be part of the problem with Github. Emphasis on "pretty cool" visual flair while letting fundamental architecture fly out that is flatly, and very obviously, just plain broken.

<comment><USER24> Considering that the comment you're replying to said "that feature is pretty cool", and didn't even need to address the actual linked rant, it seems that not everyone agrees with your "this is just plain broken" viewpoint.

I use Github for the visual flair and cool features. If I wanted to run my own fundamental architecture, I'd be doing that.

<comment><AUTHOR> "I use Github for the visual flair and cool features."

The software crisis spelled out in a single sentence.</comment></comment></comment></comment>


Not Scary Guide to Statistics - <AUTHOR> https://cassandraxia.com/stats <comment><USER2> This is really cool! Thanks for making this.

Is there a way to look up some of the concepts in here? For example, I was clicking through, clicked a wrong answer, and got an explanation of the hot hand fallacy. But then, it looks like you make me click to the right answer, and then the "hot hand" explanation gets replaced by the explanation of the correct thing. Maybe it would be useful to keep the "wrong explanations" too.</comment>


Ask HN: Better CLI tools - <AUTHOR> I'm sure most of use or have used tools like `htop` instead of `top` and `ncdu` instead of just `du`. I'd be interested in what other alternatives to common CLI tools you all use and why. <comment><USER2> zsh instead of everything else :D

</comment><comment><USER3> egrep instead of grep</comment>


Learn Lean Startup and Coding Together - <AUTHOR>

Hey Everyone,
Is anyone interested in learning both Lean Startup techniques and how to code with Ruby on Rails? Would a comprehensive course that taught you how to build a startup while teaching the following be helpful?
HTML + CSS JavaScript / jQuery Ruby on Rails Deploying your product Lean Canvas Validating your idea Customer Development UX Lean Analytics Gaining early Traction Growth Hacking
Most courses focus on one or the other, either teaching development in a piece meal sort of way or only teaching lean startup concepts such as growth hacking.
But I think many people learning to code, ultimately are interested in building a product of their own. Rather than creating a course yourself by patching together online tutorials and books, I think a comprehensive and cohesive online course would be more ideal.
What are your thoughts?
Thanks very much <comment><USER2> Not everyone who is learning to code is planning to create their own products. Even if they do plan for it, they don't get to it.

But yes, a course on a lean startup approach, gaining early traction would be nice. However, it would make sense if the course creator already has a few examples to show.</comment>