Americans Want to Live in a Much More Equal Country (They Just Don't Realize It) - <AUTHOR> http://www.theatlantic.com/business/archive/2012/08/americans-want-to-live-in-a-much-more-equal-country-they-just-dont-realize-it/260639/

<comment><USER2> What definition of wealth is being used here? If wealth just measures value of assets over debt, then there can be a huge difference in quality of life between two people who both have approximately zero wealth.

My guess is that such a definition is what's being used, and really what's being polled here is understanding of the relationship between income, consumption and wealth (surprising conclusion: most people aren't very good at anything involving math). Of course people in the bottom tiers will have almost no wealth -- they spend their entire income on consumption. People responding to the poll are probably thinking of things more in terms of how resources should be allocated. It would be more interesting to see some measure of consumption among the various tiers.

<comment><USER3> Here is the paper (cited in the article): <http://www.levyinstitute.org/pubs/wp_589.pdf>

Quote: "The principal wealth concept used here is marketable wealth (or net worth), which is defined as the current value of all marketable or fungible assets less the current value of debts. Net worth is thus the difference in value between total assets and total liabilities or debt. Total assets are defined as the sum of: (1) the gross value of owner-occupied housing; (2) other real estate owned by the household; (3) cash and demand deposits; (4) time and savings deposits, certificates of deposit, and money market accounts; (5) government bonds, corporate bonds, foreign bonds, and other financial securities; (6) the cash surrender value of life insurance plans; (7) the cash surrender value of pension plans, including IRAs, Keogh, and 401(k) plans; (8) corporate stock and mutual funds; (9) net equity in unincorporated businesses; and (10) equity in trust funds. Total liabilities are the sum of: (1) mortgage debt; (2) consumer debt, including auto loans; and (3) other debt.

This measure reflects wealth as a store of value and therefore a source of potential consumption. I believe that this is the concept that best reflects the level of well-being associated with a family's holdings. Thus, only assets that can be readily converted to cash (that is, 'fungible' ones) are included."

Please note that this is only the source of the numbers The Atlantic used in their comparison. The Atlantic did the actual poll asking people for how they think the distribution looks.

<comment><USER2> Thanks. So, it's assets less debt. This is a huge flaw in the study. Even if everyone in the country had exactly the same income and savings rate, you'd still expect a triangle distribution of wealth because of differences in age (graded by years of saving followed by years of retirement on the downward slope). In reality, you have a huge number of people living with a high quality of life with almost no savings (house fully mortgaged, some small equity in their car maybe). Any measurement that counts these people the same as homeless is deeply flawed.

And then we're going to compare that bogus metric with what random people think it might ought to be after a few moments of thought. How many of the respondents do you think asked for a paper and calculator before giving their answer? This whole article is terrible rhetorical slight of hand.

</comment></comment></comment><comment><USER4> Of course we do.

There's a substantial and growing body of social science research that indicates that inequality leads to a whole host of social ills--see Wilkinson and Pickett.

There's also an intuited sense that when so very many people (1 in 4 children now!) are underfed, and so very many have no real access to medical care (1 on 6 americans), when education is becoming ever more inaccessible, and when the few institutions that have successfully defended workers from a hardscrabble life of hopeless poverty are virtually destroyed, AND there are a few people who don't really work harder (and certainly NOT billions of times harder!) than the rest of us, but enjoy quirks of market, law, and birth to amass vast wealth, that something might be wrong with the system that allows them to do that.

We're trapped in an economic system that concentrates resources and power, whose foundations we have been so thoroughly indoctrinated to accept that we treat them as immutable laws of nature, rather than inventions to serve us-- all of us, not just the ultra-wealthy. Laws of nature, we might be stuck with. Inventions of our own making, we might could improve upon.

Yeah, we'd like a more equal country.

<comment><USER5> Of course, there's also a substantial and growing body of research that indicates that ill-advised attempts to "equalize wealth" also lead to social ills, such as a pile of 100 million or so dead bodies.

<http://www.hawaii.edu/powerkills/20TH.HTM>

<comment><USER4> Ah, yes, the brutal regimes of modern-day Norway, Sweden, Iceland, and others in Northern Europe!

where people aren't routinely bankrupted by medical debt, and don't enter adult life or the adult workforce straddled by terrible student loan debt, and workers have rights!

Obviously, the sort of inequality we have in the U.S.--now greater than that of imperial Rome--obviously that's the right way to be, and the only way society (or at least a tiny fraction of it) can thrive. Right? That's what you're saying, right?

<comment><USER5> "where people aren't routinely bankrupted"

You haven't been following the latest economic developments in the Eurozone, I see.

</comment></comment></comment></comment><comment><USER6> I must have seen polls like this 5 times in the last year. They don't reveal much except that people are very bad at comparing large numbers with small numbers.

</comment><comment><USER7> But what assumptions are people making? It's easy to say you want equality of wealth, but life is more complex than that. There are clearly paths in life that can take you down to the lowest low or to the highest high, both from the same starting point. I went to high school with kids who's parent all had similar social status and weath, but our personalities created a wide wealth gap between us.

</comment><comment><AUTHOR> This post seems to have been deep-sixed about 1 hour ago (about 2 hours after it was posted). How common is it for this to happen?

EDIT: I realise that the premise of the article has has flaws, but shouldn't it be a starting point for debate?</comment>


SageMath – Open-Source Mathematical Software System - <AUTHOR> https://www.sagemath.org/ <comment><USER2> Sage is wonderful. It has a huge number of uses but I mostly use it for cryptography. Sage has the best (certainly open source) support I know of for a myriad of things like group theory and elliptic curves. Here's a short example for how easy it is to play around with a tiny elliptic curve:

      sage: p = 19; p.is_prime()
      True
      sage: K = GF(p); K
      Finite Field of size 19
      sage: E = EllipticCurve(K, [5, 9]); E
      Elliptic Curve defined by y^2 = x^3 + 5*x + 9 over Finite Field of size 19
      sage: E.count_points(), E.order(), E.gens()
      (19, 19, [(4 : 6 : 1)])

There are far too many things to name that sage can do, but the CLI has a great autocomplete. Here's an example: let's say you have ECDH with point compression, and you specify only an x coordinate. Point compression limits the effectiveness of invalid curve attacks, where an attacker gives you a maliciously picked Diffie-Hellman value that isn't actually on the curve you're supposed to be on. However, if the x coordinate doesn't map to a point on the curve, it's necessarily on its "nontrivial quadratic twist". Sage makes this easy to play with because sage makes pretty much everything easy to play with:

      sage: E.lift_x(6, all=True)
      []
      sage: E.quadratic_twist()
      Elliptic Curve defined by y^2 = x^3 + 6*x + 13 over Finite Field of size 19
      sage: E.quadratic_twist().lift_x(6, all=True)
      [(6 : 6 : 1), (6 : 13 : 1)]

If you want to do a full-on invalid curve attack, the easiest way to do that is with Sage. You look up how the explicit formulas work in the EFD[efd], you write a ladder, you figure out how to create other elliptic curves for which the short Weierstrass doubling formulas still work (which parameter doesn't appear in the formula?), and then just let sage generate every possible curve and see which ones have the poor cryptographic properties you're after.

There's a reason the introduction to Cryptopals Set 8[set8] sends with the words:

> By the time you're done, you will have written an ad hoc, informally- > specified, bug-ridden, slow implementation of one percent of SageMath.

[efd]: [https://www.hyperelliptic.org/EFD/g1p/auto- shortw.html](https://www.hyperelliptic.org/EFD/g1p/auto-shortw.html)

[set8]: [https://cryptopals.com/sets/8](https://cryptopals.com/sets/8)

<comment><USER3> Aren't both of those attacks all-but-negated by djb's Curve25519?

<comment><USER2> Effectively, yes. Curve25519 has a few tricks that make this hard to do: it defines a curve compression format that mandates using 32-byte public keys and uses a single-coordinate ladder. It has the same property that points not on the curve are on the twist, but the twist is also secure. Curve25519's main innovation was to make the secure thing the default and the obvious thing to do: it was not the first twist-secure curve, it was not the first curve to have point compression that forces a point to be on the curve or the twist, plain old NIST P-256 had both of thsose. We also had a 1-coordinate ladder for Weierstrass prior to Curve25519, but it was far less used than effective point compression. But it is true that it is not incorrect to use P-256 without point compression which makes it easy to have these sorts of problems, and it is incorrect to do so in Curve25519, because the spec encompasses more than just the mathematical object of the curve.

Curve25519 and its sister curve Ed25519 are really good at what they were designed for. Unfortunately people also use them for things that they're not good at, and then you get bugs like the Monero double spend. Montgomery curves necessarily don't have cofactor 1 -- so that's an example of a bug that could only have occurred on X25519.

</comment></comment></comment><comment><USER4> Hi - I am the guy who started Sage. If you have any questions I can try to answer them here.

<comment><USER5> So I used Sage a lot when I was an undergraduate, but now use anything else available because the Debian Archive never seems to have a working sagemath package (eg, I just typed "sagemath" into my terminal right now and got a crash on initilisation).

Something seems a bit weird about that to me, because when I used it ~8 years ago Sage was great and none of the features I care about changed.

Do can I get a meta-comment on why Sage might struggle to get packaged for Debian in the way that, eg, Octave/maxima/R/etc do?

<comment><USER6> Scientific software has strong dependencies on the specific versions of software used. The debian package needs to play nice with a couple of hundred packages which are not the ones sage is building against upstream.

In sage 5.x the source code was quite small compared to today and could be patched with some effort. Today the project is huge and this would be impossible for one person to do.

It's vastly easier to just install sage using their own scripts from source and have some libraries duplicated. The sage source code build script is one of the simplest to use.

</comment></comment></comment><comment><USER7> When I was in college, about six or so years ago, I used Sage for my physics classes. At some point I stopped using it because it didn't really stand up to Mathematica, which we got for free. My professor said, funnily enough, "sage has been taken over by mathematicians!" talking about how it has a lot of support for math uses but not as much for things like solving ODEs that is more of use for physicists and engineers. It's funny now seeing most of the comments here talking about crypto, which I read about in examples for Sage at the time (finite fields) whilst not knowing what it could be used for other than research.

These days I'm a computational scientist, so I end up using numeric tools anyway (numpy is my life). That said, it'd be great to have access to an open source symbolic tool for the times I need them. How has Sage improved for engineer/science types in the last few years?

<comment><USER6> If you know what you're doing the axiom bindings make it the most powerful cas in terms of symbolic manipulation.

Mathematica is optimized for giving you results you need in undergrad classes. Sage is not optimized at all, but can solve problems useful to researchers.

It's the difference between osx and linux.

<comment><USER8> >Mathematica is optimized for giving you results you need in undergrad classes

What makes you think this? Mathematica is used in all sorts research projects, technical fields, finance, and so on. I've seen Mathematica required or recommended in many, many job listings, especially for quants. I've never seen Sage there.

For evidence, here [1] is what you get for searching for Mathematica on Indeed.com. Note pretty much every one of those jobs lists several math related packages. Not one mentions Sage.

Unfortunately you cannot run the same search on Sage, since there is an ERP package that shows up instead. However, from browsing those listing again I find zero hits for the math package Sage.

[1] [https://www.indeed.com/jobs?q=Mathematica&l=](https://www.indeed.com/jobs?q=Mathematica&l=)

[1] [https://www.indeed.com/jobs?q=Mathematica&l=](https://www.indeed.com/jobs?q=Mathematica&l=)

<comment><USER6> The languages themselves. To evaluate most simple integrals in mathematica you just put them in and all the corner cases are assumed away for you. For sage and the axiom binding you need to make those assumptions explicit. Pretty much everything in mathematica assumes you're working on the real numbers, pretty much nothing in sage does: [http://doc.sagemath.org/html/en/tutorial/tour_rings.html](http://doc.sagemath.org/html/en/tutorial/tour_rings.html)

Most math quants use is at the undergrad level, the finance industry in general is pretty backwards. A very large chunk of it is run on spreadsheets that are passed around in emails. I've worked in it and having seem what it takes to run some of the clients spreadsheets still gives me nightmares.

Again, the difference between osx and linux.

\---

To clarify what I mean by undergrad level: Something that is taught to some undergrads in some degree.

Someone who specialized in pure symbolic mathematics is likely to see integrals in their last year that other people will not see until they start doing postdoc work.

<comment><USER8> >Most math quants use is at the undergrad level, the finance industry in general is pretty backwards

Do you have any idea what a quant is? I have a PhD in math, and am decently well versed in the math quants use, and it's nothing like undergrad math. Many of the people I got PhD's with became quants, and we've had plenty of discussions on the math they use.

Quants build models using math far beyond what an undergrad learns, including tools such as martingales, stochastic calculus, Black-Scholes (and vast generalizations), Brownian motion, Stochastic differential Equations, numerical methods (usually much more advanced than an undergrad will see), and more.

Quant jobs usually want a PhD in math or related field. If an undergrad math degree covered what they needed they'd not require a PhD for most positions.

What do you think a quant does?

Here's a site [1] for quant jobs. Probably none for someone with only an undergrad math degree.

[1] [http://www.quantfinancejobs.com/](http://www.quantfinancejobs.com/)

<comment><USER6> There's a number of things to disentangle in that post.

1). The domain you posted is for sale and appears to be broken or slow. Given it uses aspx and a Microsoft stack that's ten years out of date I'd say it's perfectly representative of the state of the larger finance industry.

2). What is a quant. Depends on the job. I was hired as a quant for risk management then got switched to algos when the pm found out I have a lot of hard real time experience with Linux. The first job was all discrete math, the second was optimizing x86 assembly.

3). Credential inflation is real. The application of the maths you talked about was something I saw first hand. The assumptions under which the formal models would work were so thread bare a stiff breeze would tear them down quote Keynes:

>The object of our analysis is, not to provide a machine, or method of blind manipulation, which will furnish an infallible answer, but to provide ourselves with an organised and orderly method of thinking out particular problems; and, after we have reached a provisional conclusion by isolating the complicating factors one by one, we then have to go back on ourselves and allow, as well as we can, for the probable interactions of the factors amongst themselves. This is the nature of economic thinking. Any other way of applying our formal principles of thought (without which, however, we shall be lost in the wood) will lead us into error. It is a great fault of symbolic pseudo- mathematical methods of formalising a system of economic analysis, such as we shall set down in section vi of this chapter, that they expressly assume strict independence between the factors involved and lose all their cogency and authority if this hypothesis is disallowed; whereas, in ordinary discourse, where we are not blindly manipulating but know all the time what we are doing and what the words mean, we can keep 'at the back of our heads' the necessary reserves and qualifications and the adjustments which we shall have to make later on, in a way in which we cannot keep complicated partial differentials 'at the back' of several pages of algebra which assume that they all vanish. Too large a proportion of recent 'mathematical' economics are merely concoctions, as imprecise as the initial assumptions they rest on, which allow the author to lose sight of the complexities and interdependencies of the real world in a maze of pretentious and unhelpful symbols.

The above is still excellent advice, most often never followed. Of course the lunch talks we had were very interesting, completely divorced from reality, but very interesting.

4). Most undergrads will never see the mathematics. True. But some will. My numerical methods 4th year project was a symplectic integrator for the gravitational interaction between Jupiter, Mars, the Sun and the asteroid belt. It wasn't new research, the results were known 50 years ago, but it was on par with the state of the art in industry in terms of complexity of implementation (cleanness of implementation was a completely different thing, while not spaghetti code it's rightly never seen the light of day).

<comment><USER8> 1) Irrelevant. Care to post all these quant jobs that can be done with undergrad math? I just posted a lot requiring a PhD.

2) >The first job was all discrete math, the second was optimizing x86 assembly.

I suspect you didn't have the math so ended up pushed to the programming side, right? If so, how can you judge what math a quant uses?

3) >Credential inflation is real.

Job requirements are real too. Keynes was not a quant, and his quote is irrelevant compared to simply addressing the point. If you're simply going to start quoting random people instead of addressing he issue then we'll be here forever.

4). > Most undergrads will never see the mathematics. True.

Didn't you just write "Most math quants use is at the undergrad level"? If it's undergrad level math, won't most undergrads see it? If most won't see it, perhaps it's taught more often in graduate level courses (which it is).

Just curious - since you worked as a quant, can you explain in your own words the importance and mechanism of Black-Scholes? And if that's too easy, how about explaining more recent generalizations?

<comment><USER6> >I suspect you didn't have the math so ended up pushed to the programming side, right? If so, how can you judge what math a quant uses?

The compensation was 30% higher.

You're arguing in bad faith here so I'm done.

<comment><USER8> >The compensation was 30% higher.

Then you weren't what most places call a quant. You were a programmer at a financial company with a toe in finance.

Did you use the math tools above or not? If you didn't how are you able to judge their efficacy?

>You're arguing in bad faith here so I'm done.

Convenient considering above you routinely did not address your claims, reversed positions, and discounted jobs on a quant site because the tech stack was aspx.

I figured your position may have been borne from not knowing the other side and from career sour grapes.

</comment></comment></comment></comment></comment></comment></comment></comment></comment><comment><USER9> I downloaded Sage a few years ago, when I was getting into algebraic number theory. That was my first experience with Python, notebooks, numpy/scipy etc. Now I do almost all my programming - which is mostly maths-related graphics and image manipulation/processing, but all kinds of stuff - with Sage, in Cython. Usually with the CLI (and a text editor), occasionally with the notebook (to run individual lines and for the better error messages). I love being able to choose the C or Python way to do something. I can quickly get from initial idea to working program, and it runs _fast_.

It's just a pleasure to use. Thank you williamstein!!

</comment><comment><USER10> It's great to see lots of amazing projects and that people get to have more choice and can avoid being locked into one solution, but one thing I'd like to see more in a description of any product (open source or not) especially when there's a learning curve involved, is the use cases where it would make more sense to take on the effort involved in the learning curve for this particular product rather than others that seems similar to it (at least to the uninitiated).

<comment><USER2> I'll give it a shot: Sage is what happens when you build a computer algebra system on a giant pile of existing open source libraries and give it a nice, consistent interface and a ton of starving postdocs to write cool integrations and features.

If you're a programmer and you've used Mathematica or Maple and you've ever found yourself wishing that you'd have something like that except in a real programming environment, Sage is it. Sage is Python (with some syntactical extensions).

</comment></comment><comment><USER11> Sage is something I keep meaning to learn.

Every time I've tried it though, it just didn't feel as polished and integrated as Mathematica.

<comment><USER12> Unfortunately, the Mathematica language is a 'write-only' language; reading and debugging code months after use is... difficult. And that means it's hard to build up libraries which depend on libraries. The Sage community is great, and pushes a lot of code for research problems; things that are technically possible in Mathematica, which someone might work up into a notebook at some point, with a lot of effort, grow into reliable libraries in Sage.

<comment><USER13> It is true that stuff like (to take a random example)

        Total@Map[Function[{L}, Min @@ Table[dist[func[Array[c[#, k]&, n]]][L], {k, m}]], dd]

is normal and common in Mathematica code. Like with Perl, the culture has started from small scripts making heavy use of shorthands provided by the language, and slowly evolved to writing larger codebases.

Some of this can, on an individual level, be fixed by adopting a clearer coding style. But like Perl 5, the language kind of lures you to use the shorthands a lot.

<comment><USER14> It's also cultural- line breaks, indentations, and parenthesis help a _lot_ to make Mathematica more readable, but there's a strong tendency to do things in one liners like you show. Even the official docs are like this. I think even then it can have some readability problems, but it would certainly improve things quite a bit if the community would use a better style.

</comment></comment></comment></comment><comment><USER15> 2011 discussion: [https://news.ycombinator.com/item?id=2088871](https://news.ycombinator.com/item?id=2088871)

</comment><comment><USER16> The initial issue with Sage was its packaging due to its large number of dependencies. That is largely a non-issue now for the end user.

Now there is also SageMathCloud, that makes it even more convenient to adopt.

<comment><USER17> You are waaaay outdated. "SageMathCloud is Now CoCalc" since May 2017. Go google it. And it's not free _at all_, except for very basic stuff. Your pricing depends on what you need, from hundreds to thousands of dollars. Not a criticism, only a heads up for the guys reading the comments.

<comment><USER18> CoCalc is an open source system. It is convenient to pay for a setup, which is how they hope to get revenue to pay developers.

<comment><USER4> We also provide a nice easy to install Docker image of Cocalc here: [https://github.com/sagemathinc/cocalc- docker](https://github.com/sagemathinc/cocalc-docker)

</comment></comment></comment></comment><comment><USER19> Please donate. I just donated $50 to start things out.</comment>


Patch Critical Cryptographic Vulnerability in Microsoft Windows [pdf] - <AUTHOR> https://media.defense.gov/2020/Jan/14/2002234275/-1/-1/0/CSA-WINDOWS-10-CRYPT-LIB-20190114.PDF <comment><USER2> From a conversation with Thomas Pornin, a plausible explanation given the details provided in the DoD advisory:

Given an ECDSA signature and control over the curve domain parameters, it's straightforward to create a second private key that matches the original public key, without knowledge of the original signing private key. Here's how:

To start with, you need to understand a little bit about how curve cryptography works. A curve point is simply the solution to an equation like

        y^2 = x^3 + ax + b mod p

The "curve" itself consists of the parameters a, b, and p; for instance, in P-256, a is -3, b is (ee35 3fca 5428 a930 0d4a ba75 4a44 c00f dfec 0c9a e4b1 a180 3075 ed96 7b7b b73f), and p is 2^256 - 2^224 + 2^192 + 2^96 - 1.

To use that curve for cryptography, we standardize a base point G, which generates all the points we'll use. A private key in ECC is simply a scalar number k mod p; the public key corresponding to that private key is kG (the curve scalar multiplication of the point G times our secret k). Everybody using P-256 uses the same base point; it's part of the standard.

Assume that we have a signature validator in CryptoAPI that allows us to specify our own nonstandard base point. We're ready to specify the attack; it's just algebra:

Let's call Q the public key corresponding to the signature; for instance, Q could be the ECC public key corresponding to an intermediate CA.

Q is a point on a named curve (like P-256). Q = xG for some private key x; we don't, and won't ever, know x. G is the standard generator point for (say) P-256.

What we'll do is define a "new curve", which is exactly P-256, but with a new generator point. We'll generate our own random private key --- call it x' \--- and then from that random private key compute a malicious generator G' = (1/x')*Q.

On our "new curve", Q remains a valid point (in fact, our evil curve is the same curve as P-256, just with a different generator), but now Q' = x'G', and we know x'.

Now we sign a fake EE certificate with our evil private key x'. Presumably, Windows is just looking at the public key value and, reading between the lines of the DoD advisory, the curve equation, but not the base point. By swapping base points, we've tricked Windows into believing the private key corresponding to Q is x', a key we know, and not x, the key we don't know.

I'm paraphrasing a shorter writeup Pornin provided, and the basic curve explanation is mine and not his, so if I've worded any of this poorly, blame me and not Thomas Pornin. The actual exploit-development details of the attack will involve figuring out in what circumstances attackers can swap in their own base point; you'd hope that the actual details of the attack are subtle and clever, and not as simple as "anyone could have specified their own base point straightforwardly at any time".

See also this related exercise in Sean Devlin's Cryptopals Set 8:

[https://toadstyle.org/cryptopals/61.txt](https://toadstyle.org/cryptopals/61.txt)

This attack --- related but not identical to what we suspect today's announcement is --- broke an earlier version of ACME (the LetsEncrypt protocol).

<comment><USER3> I hope that the actual vulnerability is far more complicated. If we can't even get crypto libraries right (where you'd hope most of the formal verification folks are), then there's not much hope of security for the rest of the industry.

I'm normally not much of a pessimist but things like this really make me wish we could just burn all the things and start over.

<comment><USER4> > just burn all the things and start over

Wrap all of this with an "IN MY OPINION"...

That would make things worse because we'd make the same mistakes again. I've been on many start over projects (Xeon Phi, for example, threw out the P4 pipeline and went back to the Pentium U/V). It doesn't work. You know what the most robust project I've worked on? The instruction decoder on Intel CPUs. The validation tests go back to the late 1980's!

You make progress by building on top and fixing your mistakes because there literally IS NO OTHER WAY.

Go read about hemoglobin, its the one of the oldest genes in the genome, used by everything that uses blood to transport oxygen, and it is a GIGANTIC gene, full of redundancies. Essentially a billion years of evolution accreted one of the most robust and useful genes in our body, and there's nothing elegant about it.

I think that's where we are headed. Large systems that bulge with heft but contain so many redundant checking code that they become statistically more robust.

<comment><USER5> Yep : [https://www.joelonsoftware.com/2000/04/06/things-you- should-...](https://www.joelonsoftware.com/2000/04/06/things-you-should-never- do-part-i/)

<comment><USER6> > That LoadLibrary call is ugly but it makes the code work on old versions of > Windows 95.

with the proper code comments for the hair (in the code or in the source repo) and regression tests it becomes possible to clean up and even rewrite.

floppy disks are no longer a thing and neither is windows 95. RAM & swap space are abundant, so that OOM may never happen any more IRL.

the app's whole architecture may have been carefully chosen for the hardware and simplistic compilers of another age.

is it okay never to rewrite a webpage where 50% of the codebase is IE6 hacks?

if it is code that must be maintained, then at some point the hair may need to be shaved; it simply cannot grow forever as the world moves on around it. the doma of "never rewrite" is silly without further context.

<comment><USER5> >if it is code that must be maintained, then at some point the hair may need to be shaved; it simply cannot grow forever as the world moves on around it. the doma of "never rewrite" is silly without further context.

"Shaving" seems more close to refactoring & partial rewrite than starting from scratch. Which is what we are talking about.

Still, You make good points. Maybe, we should think of "restarting from scratch" the same way we do premature optimization - (1. don't do it. 2. Don't do it too early. 3. if you must do, measure first)

I think every developer dreams of rewriting from scratch because they hate how hacky and ugly their code is probably due to rushed deadlines and because it was just supposed to be an mvp. And they think about throwing it away and starting clean and doing it the 'proper way'. This imo is the wrong reason to start from scratch.

But if your technical debt is genuinely preventing your product from going where it needs to go or do its job. That is the right reason. Again you have to make the calculation whether the technical debt is greater than the cost of rewriting from scratch, re-opening old bugs and introducing new ones, breaking your customers workflow - they also invested a lot into your old program. How many times have you liked a program until 'the damn devs went and ruined a good thing' by 'fixing what wasn't broken'. Again, customers don't see or care about the code or technical debt. They just need to get their work done.

</comment></comment></comment></comment></comment></comment><comment><USER7> None of these links describe how the exploit works.

I found this: [https://media.defense.gov/2020/Jan/14/2002234275/-1/-1/0/CSA...](https://media.defense.gov/2020/Jan/14/2002234275/-1/-1/0/CSA- WINDOWS-10-CRYPT-LIB-20190114.PDF)

So based on my limited understanding:

1\. The certificates have a place for defining curve parameters.

2\. The attacker specifies their own parameters so that they match the start of a standard curve but choose the rest of the parameters themselves. With the right ECC math they are able to generate a valid signature for the certificate even though they don't own the private key corresponding to the original curve.

3\. The old crypto API -didn't- check that certificates were signed from a fixed set of valid parameters. It would just check for sig validity allowing for spoofing of the cert.

Interesting stuff. So you might be able to cryptographically prove if there was ever any attacks in the wild from this at a given time (if we assume dates are checked at least)?

I wonder what happens at the Microsoft Security Response Center when a big vuln hits like this? Does it tie up all their resources just working on the one vuln?

<comment><USER8> "enable remote code execution." suggests it's worse than that - like the curve parameters might allow a buffer overflow, or something of that nature.

Maybe they just mean because it can sign Authenticode signatures

<comment><USER9> I haven't seen it mentioned anywhere yet, but I have to wonder... Does this vulnerability allow MITM of _Windows Update_ itself?

I would expect all connections to the Windows Update servers to be protected with TLS, and as a second layer the updates themselves to be signed, but if this vulnerability allows bypassing both signatures, this could be really bad.

<comment><USER2> This attack targets the nuts and bolts of how the Windows platform actually implements TLS; a vulnerability in CryptoAPI that allowed you spoof any ECC certificate would presumably break all of TLS. What might mitigate this in Windows Software Update would be some kind of key pinning that prevented arbitrary certificates from being used.

 _Later_

Dmitri Alperovitch at Crowdstrike says this doesn't impact Windows Update.

</comment></comment></comment></comment><comment><USER10> From Krebs tweets:

The NSA's Neuberger said this wasn't the first vulnerability the agency has reported to Microsoft, but it was the first one for which they accepted credit/attribution when MS asked.

Sources say this disclosure from NSA is planned to be the first of many as part of a new initiative at NSA dubbed "Turn a New Leaf," aimed at making more of the agency's vulnerability research available to major software vendors and ultimately to the public.

<comment><USER11> more like someone with some commonsense decided to capitalize on disclosing issues when other countries get zero days. Oh well, guess we can't use this anymore Bob, china has been exploiting it over the past week. Call Microsoft lets at least get some free PR in exchange of having to give this up.

<comment><USER12> They have probably done that for a while (this is the first _public attribution_ , not the first disclosure); but they are now blowing their trumpet because they need some good PR. Why?

Snowden.

<comment><USER13> Much more likely the bad reaction to Eternal Blue.

<comment><USER12> EternalBlue would have not received that much coverage had it not happened after Snowden proved that the American public cannot trust the agency. They had been dragged to the foreground before without repercussions, because reactions were limited to the IT world. Snowden made it a general-public issue, and now they are forced to to shape up.

</comment></comment></comment></comment></comment><comment><USER14> Interesting comment on reddit:

> _Within the federal space, we 've been making unprecedented plans for > patching systems as soon as this patch is released today. In my agency we're > going to be aggressively quarantining and blocking unpatched systems > beginning tomorrow. This patch has been the subject of many classified > briefings within government agencies and military._

[https://old.reddit.com/r/sysadmin/comments/eoll74/all_hands_...](https://old.reddit.com/r/sysadmin/comments/eoll74/all_hands_on_deck_major_ms_update_coming_today/)

<comment><USER15> The Department of Homeland Security issued an emergency directive today for federal agencies to patch their systems within 10 business days:

[https://cyber.dhs.gov/ed/20-02/](https://cyber.dhs.gov/ed/20-02/)

<comment><USER16> And that's for civilian systems. The only other time I can recall this happened was with the DNS vuln.

</comment></comment></comment><comment><USER16> > > [https://twitter.com/randomoracle/status/1217198437281804290](https://twitter.com/randomoracle/status/1217198437281804290)

Some speculation on CVE-2020-0601.

Earlier version of Windows cryptography API only supported a handful of elliptic curves from NIST suite-B. It could not handle say an arbitrary prime- curve in Weierstrass form with user defined parameters

…

While it could not grok arbitrary curves, Windows API made an attempt to recognize when a curve with explicit user-defined parameters was in fact identical to "built-in" curve that is supported

It appears that mapping was "lazy:" it failed to check that _all_ curve parameters are identical to the known curve.

In particular, switching the generator point results in a different curve in which an attacker can forge signatures that match a victim public key

> > [https://twitter.com/esizkur/status/1217176214047219713](https://twitter.com/esizkur/status/1217176214047219713)

It looks like this may be a caching issue: There's a CCertObjectCache class in crypt32.dll. In the latest release its member function FindKnownStoreFlags (called from its constructor) started checking the public key and parameters

> > [https://twitter.com/thracky/status/1217175743316348929](https://twitter.com/thracky/status/1217175743316348929)

ChainComparePublicKeyParametersAndBytes used to just be a memcmp before the patch. Same with any calls to IsRootEntryMatch. Both new functions.

</comment><comment><USER17> The actual advisory from Microsoft (CVE-2020-0601):

[https://portal.msrc.microsoft.com/en-US/security- guidance/ad...](https://portal.msrc.microsoft.com/en-US/security- guidance/advisory/CVE-2020-0601)

> A successful exploit could also allow the attacker to conduct man-in-the- > middle attacks and decrypt confidential information on user connections to > the affected software.

</comment><comment> 1970-01-01 So Win7 isn't affected? At this point in time I have to point out a fully patched Win7, having ~8 hours of support life left, just happens to be more secure than Win10 for trusting certs.

<comment><USER18> It's called maturity... code that isn't radically changed or added to will asymptotically approach being completely bug-free as all the bugs get gradually discovered and fixed over time. This also implies that the majority of bugs are found in the newest code.

</comment></comment><comment><USER19> The advisory from Microsoft is quite bizarre. It focuses on code signature validation, rather than X.509 as a whole. It also doesn't say anything about how the vulnerability itself works. Vague advisories like this are dangerous, because it gives adversaries an advantage over IT departments that don't know which system they should patch first. It would be much better if everyone understood exactly what the impact is from the get go. The NSA advisory is a bit better, but still doesn't tell us how exactly the ECC certificate validation bug works. We're left with only a few hints.

<comment><USER20> X509 as a whole is fine and this isn't so much arbitrary MITM of any web server. It's specific to ECC public keys(not specifically X509 certs) that validate from cryptoAPI which is a fairly limited but devastating scope. EG Code signing.

Firefox uses its own NSS libraries not cryptoAPI to verify certs and is completely unaffected. I assume every major browser uses NSS or their own APIs as well. And of course RSA and AES certificates remain unaffected.

<comment><USER19> TLS supports ECC certificates, so any web client using crypt32 to verify those is affected. That includes web browsers and lots of other types of services, so it's not primarily code signed executables.

Does Firefox still use NSS when using the Windows Certificate Store for the source of trusted root certs? What about Chrome?

You're right that RSA certificates are unaffected. There's no such thing as AES certificates, though.

<comment><USER21> > Does Firefox still use NSS when using the Windows Certificate Store for the > source of trusted root certs?

Yes. When enabled this feature in Firefox just effectively copies certificates from one of the Windows trust stores but continues to use its own (NSS) logic for trust decisions. Note also that Firefox's config switch only looks at your local changes - a corporate CA, a MITM proxy on a dev's workstation, something like that. Firefox continues to rely on Mozilla's judgement not Microsoft's for global trust policy.

> What about Chrome?

Chrome is probably affected. Chrome uses the platform (in this case crypt32.dll) trust decisions and then layers on additional rules from Google, such as the requirement for proof of CT logging. So unless an additional rule is blocking the weird curves they'll pass on Chrome on Windows.

</comment></comment></comment></comment><comment><USER22> Guess this is what Krebs was referring to yesterday: [https://krebsonsecurity.com/2020/01/cryptic-rumblings- ahead-...](https://krebsonsecurity.com/2020/01/cryptic-rumblings-ahead-of- first-2020-patch-tuesday/)

And the discussion on HN: [https://news.ycombinator.com/item?id=22039481](https://news.ycombinator.com/item?id=22039481)

</comment><comment><USER23> Anyone got any news on Windows 7 seeing as it's still 25% market share approx according to statcounter?

<comment><USER24> Does Windows 7 crypt32.dll support ECC?

<comment><USER25> Yes. [https://docs.microsoft.com/en- us/windows/win32/secauthn/tls-...](https://docs.microsoft.com/en- us/windows/win32/secauthn/tls-cipher-suites-in-windows-7)

<comment><USER16> but only shortname curves

<comment><USER26> Does that mean it's unaffected?

<comment><USER16> I would expect everything not patched today is unaffected for such a reason yes.

<comment><USER27> But Win7 _was_ patched this Tuesday...

<comment><USER16> That was the last roll-up not this security update.

</comment></comment></comment></comment></comment></comment></comment></comment><comment><USER28> This is yet another illustration of why complexity is evil in cryptographic and security critical code. It's evil everywhere, but it's particularly evil there. The relationship between bugs and complexity is exponential, not linear.

X.509 is an over-engineered legacy-cruft-encrusted nightmare. I've implemented stuff that uses it and I _never_ , even after the most careful auditing by myself and peers, leave with the sense that I have handled everything correctly or that my code is totally air-tight.

<comment><USER29> The bug is being publicly described as specific to the implementation of a particular class of cryptographic primitives (ECC). If that's accurate, simplifying the certificate data format (unnecessarily messy though it may be) wouldn't do much to mitigate this particular issue.

<comment><USER2> To the extent it's X.509 allowing curve parameters to be specified alongside signatures and public keys, this is indeed a case where all the extra joinery in X.509 is creating exploitable complexity, and the point 'api is making is well taken.

</comment></comment></comment><comment><USER30> It's been reported that Windows Defender can detect and report on malicious certificates:

[https://twitter.com/AmitaiTechie/status/1217156973268893696](https://twitter.com/AmitaiTechie/status/1217156973268893696)

Of course, that relies on not having Defender disabled by an alternate product.

<comment><USER31> On Windows Server 2016 and newer it stays enabled even with an "alternate product."

[https://docs.microsoft.com/en-us/windows/security/threat- pro...](https://docs.microsoft.com/en-us/windows/security/threat- protection/windows-defender-antivirus/windows-defender-antivirus-on-windows- server-2016)

> In Windows Server 2016, Windows Defender AV will not disable itself if you > are running another antivirus product.

<comment><USER30> True, but imagine you deployed SEP in accordance with supplier's instructions:

[https://support.symantec.com/us/en/article.tech237177.html](https://support.symantec.com/us/en/article.tech237177.html)

Or Mcafee:

[https://kc.mcafee.com/corporate/index?page=content&id=KB8245...](https://kc.mcafee.com/corporate/index?page=content&id=KB82450) (search for DisableRealtimeMonitoring)

For a deeper dive: I ran into issues on a security assessment trying to run procdump on lsass being blocked by Defender. Workaround.. was to find a machine with McAfee installed where that behavior was allowed.

</comment></comment></comment><comment><USER9> Following a couple of twitter threads led me to this PDF: [https://media.defense.gov/2020/Jan/14/2002234275/-1/-1/0/CSA...](https://media.defense.gov/2020/Jan/14/2002234275/-1/-1/0/CSA- WINDOWS-10-CRYPT-LIB-20190114.PDF)

(the tweet where I found it at [https://mobile.twitter.com/NSAGov/status/1217152211056238593](https://mobile.twitter.com/NSAGov/status/1217152211056238593) has an image version of that PDF, in case you don't trust that domain)

</comment><comment><USER32> I suspect you're overcomplicating the attack with all the math and we can ignore most of it.

The only way the attacker can tell the MS Crypto API is via the TLS protocol. You can only do it if it's relevant. The only option for that is to use ECDH, which allows the server to supply EC parameters for the Diffie-Hellmann exchange.

My bet is that the problem is that MS Crypto API took those parameters as correct without checking them against what's in the certificate. I.e.,

ServerKeyExchange - here's the EC spec, we just need the public key Certificate - ah - here's public key, we have the ECparams - let's run the math

:)

</comment><comment><USER33> For those that need proof their machine is updated the article numbers listed here are the KB numbers you should match in windows 10 update list.

[https://portal.msrc.microsoft.com/en-US/security- guidance/ad...](https://portal.msrc.microsoft.com/en-US/security- guidance/advisory/CVE-2020-0601)

</comment><comment><USER34> I think the scariest thing about this is if this was a PR stunt, the release of an unknown vuln could be completely controlled by whoever knew about it. Best case scenario is a relationships between Microsoft and the five eyes. It could have just as easily been China, a independent group or whatever. It's even possible that the top of Microsoft and/or NSA might not even know. But if it wasn't planned, no one would admit it anyway.

</comment><comment><USER35> Oh great. Mozilla just added last week an option for entreprises to enable trusting of system certificates on Windows. See Firefox 72.0 release notes: [https://www.mozilla.org/en- US/firefox/72.0/releasenotes/](https://www.mozilla.org/en- US/firefox/72.0/releasenotes/)

<comment><USER35> Note that from the release note the new option just allows to read certificates from the system store. Validation is still done by Firefox, so NSS crypto lib, not crypt.dll. So even if the option is enabled Firefox is not affected by the vulnerability (except for code signing check of the Firefox binary itself by the OS).

</comment></comment><comment><USER36> Interesting, makes you wonder how many exploits the NSA purposely doesn't mention to the vendor for their own benefit

</comment><comment><USER37> I'm assuming there will never be an official proof of concept release, so how long do you all think it will be before we see widely available exploit code and fake certificates out in the wild?

<comment><USER38> Tpcaek has said elsewhere in this thread:

> Saleem Rashid worked out a POC for this on Slack in something like 45 > minutes today

So I would be amazed if there were not some malicious certificates out there already.

</comment></comment><comment><USER39> Could someone clarify: does this allow the creation of fake certificates that are accepted as authentic by _any_ crypto library?

Or rather, does it treat such faked certificates as authentic itself?

<comment><USER40> > Could someone clarify: does this allow the creation of fake certificates > that are accepted as authentic by any crypto library?

No, only the Windows native one. For instance, Firefox (which uses NSS) would be safe.

<comment><USER41> Although, if one point can be exploited to gain access to one area, then privilege escalate or exploit from that vantage point, then a lot is at stake.

</comment></comment></comment><comment><USER42> At least this only affects Windows 10 (as far as I can tell)

<comment><USER43> Windows 7 reached EOL today so they may leave it as is if it is affected.

<comment><USER40> According to [https://portal.msrc.microsoft.com/en-US/security- guidance/ad...](https://portal.msrc.microsoft.com/en-US/security- guidance/advisory/CVE-2020-0601), it doesn't look like windows 8.1 received a patch either, and that's still in support. Maybe only windows 10 has ECC support, and therefore any previous versions are not affected?

Also, according to [https://support.microsoft.com/help/4534310](https://support.microsoft.com/help/4534310), it looks like Windows 7 got security patches for this month.

<comment><USER27> Indeed, got like 3 patches for Win7 this Tuesday.

</comment></comment></comment></comment><comment><USER44> When will they learn that the only way to respond to a hostile government is to overthrow it?

</comment><comment><USER45> Do any browsers use CryptoAPI for TLS certificate validation?

<comment><USER46> I think classic IE would do so.

<comment><USER47> So does Chrome, if I'm not mistaken

<comment><USER48> Firefox might with an Enterprise flag on?

<comment><USER49> That can only make it check the system certificate store for trusted roots etc, it'd still use NSS for the crypto operations is my understanding.

</comment></comment></comment></comment></comment><comment><USER50> Globalist conspiracy. X files intro music

</comment><comment><USER51> Some things never change...

</comment><comment><USER52> Nothing screams "we have microsoft keys!" harder than the fact that the only vulnerabilities reported by the NSA is a cryptographic validation bug. If I had to guess exactly what kind of vulnerabilities they do not need, this is exactly those kind. Who needs crypto validation bug when you already own microsoft's keys?!

<comment><USER53> I think you're spot on. Everything agencies at this level do is calculated and weighed carefully. They definitely would not seek to patch a useful vuln. It is a PR stunt.

<comment><USER54> The NSA's job is to gather information. They have >400mil people to protect, and 6bn people to attack. They are in the business of using exploits, not closing them.</comment></comment></comment>


Bootstrap Icons - <AUTHOR> https://github.com/twbs/icons <comment><USER2> For those curious about icon fonts versus SVG, though icon fonts can be easier for the developer to use, there are drawbacks for your users (especially in accessibility).

But don't take my word for it: [https://css-tricks.com/icon-fonts-vs- svg/](https://css-tricks.com/icon-fonts-vs-svg/)

"It all comes down to browser support. If you can go IE 9+ / Android 3+, inline SVG is better at pretty much everything than icon fonts. If you need the deeper browser support, I feel like an inline SVG fallback would be too big of a pain to be worth it (maintaining a PNG copy, inserting an additional element to display PNG version, hiding SVG element… it's weighty)."

<comment><USER3> Giving inline SVGs a full green score on "weird failures" isn't right.

For example, plenty of SVG features, like masks and patterns, use references to ID attributes to compose the effect. If you include multiple inline SVGs on the same page, you now need to make sure that none of them use the same ID for an element, or else your masks can break in unexpected and hard-to-debug ways as some browsers get confused about which element you intended to use as a mask.

If you're exporting your SVG from a graphics program it's not unlikely that they're generating IDs by the same deterministic method on every export, creating such ID collisions that you're unaware of.

<comment><USER2> Sounds like a good time to use shadow DOM, perhaps. That could isolate your IDs… although it would complicate the style cascade...

</comment></comment></comment><comment><USER4> Great addition by the bootstrap team. I think the lasting success of Font Awesome[0] shows that this could potentially be a revenue angle for the bootstrap team as well, in addition to the fact they just put out some great first party icons!

There is a small downside here in that they are as of this alpha release (alpha.1) svg only, so they don't fallback to a font icon, which may or may not be desirable. I know generally SVG is preferred (in part to accessibility concerns, IIRC, as well as being easier to style and of course SVGs scale well for sizing concerns)

None the less, very impressive!

[0] [https://fontawesome.com/](https://fontawesome.com/)

</comment><comment><USER5> Now that's a coincidence... Just 5 minutes ago I was checking out the Bootstrap 5 alpha site (which is really great; just check out what it offers) and stumbled upon the Bootstrap icons project! Great stuff!

Many, many thanks to the developers!

</comment><comment><USER6> My personal favorite icons are [https://heroicons.dev](https://heroicons.dev) . All tiny, elegant SVGs.

</comment><comment><USER7> _> Bootstrap Icons are SVGs, so they scale quickly and easily and can be styled with CSS._

Does this sentence actually refer to image icons in an implicit comparison? Or is there a lot more to SVG (for an end user who may not modify the underlying paths and design)?

I've been using Fontawesome for several years and my font declaration includes popularly supported font formats like WOFF2, WOFF, etc. The reason I even chose a font icon set was to easily scale and style it with CSS. It's been working quite well for standard and common icons. Getting it cached by the browser is also easy with standard caching headers.

</comment><comment><USER8> I'm sure that as this is developed it will get easier, but looking over the docs at the various ways to use these makes, for example, Font Awesome look like a walk in the park. The font based icon solutions using just CSS classes is fantastic not to mention it respects font sizing, colors, etc. The SVG Font Awesome components for the various front end frameworks are typically a breeze to drop in and start using as well. As it stands, going strictly off the docs regarding usage, this looks like more of a chore to use and fit in with text flow and styling.

<comment><USER9> There are components for the Bootstrap icons available for a variety of front end frameworks which make them easy to work with.

</comment></comment><comment><USER10> We're still stuck on FontAwesome 3 (or was it 4? The free version), so a migration stylesheet to map FA icons to BS would be helpful

<comment><USER8> Believe FA5 has (optional) css shims for version 4, even the free version. Not sure about the upcoming version 6.

</comment></comment><comment><USER11> "Also available in Figma" \-- nice touch!

</comment><comment><USER12> Is inline SVG always the fastest way to include a handful of icons?

<comment><USER13> Here's a StackOverflow question-answer about inline vs not-inline SVG: [https://stackoverflow.com/questions/23210126/inline-svg- vs-s...](https://stackoverflow.com/questions/23210126/inline-svg-vs-svg-file- performance) _" Inline SVG vs SVG File Performance"_

(Hint: Sometimes. Depends on how many times they are repeated (if any), and how large they are, and how often your html / css etc contents changes ...)

</comment></comment><comment><USER14> Oh nice. Font Awesome was getting greedy.

<comment><USER15> You're being downvoted, but I find myself mostly agreeing with you -- FontAwesome was much more open and accessible in the early years, but have now been monetizing presumably rather successfully after their $1m+ Kickstarter campaign:

[https://www.kickstarter.com/projects/232193852/font- awesome-...](https://www.kickstarter.com/projects/232193852/font-awesome-5)

I guess I never really noticed in the corporate world because my old company would just pay the modest price for icon licenses, but on my own, I find myself a bit more weary to purchase a $99/year subscription just to play around with some of their nicer icons with my personal coding projects.

On the other hand, I do appreciate all the free icons they offer and how easy it is to access them!

<comment><USER16> The $99/year does cover 5 seats, so it's good value for businesses. But a cheaper plan for individual developers and designers would be appreciated.</comment></comment></comment>


T-Mobile kills the 1GB data cap, takes a more friendly approach - <AUTHOR> http://www.engadget.com/2008/09/24/t-mobile-kills-the-1gb-data-cap-takes-a-more-friendly-approach/ <comment><USER2> They need to at least match AT&T's data plan in order to be competitive.

For an unlocked i-phone, there is a $5.99 "t-zones hack" that allows you unlimited data access using t-mobile.

<http://www.modmyi.com/forums/t-mobile/>

I wonder if this hack will work on the G1.</comment>


The Art of Zenware and Why You Should be Using it - <AUTHOR> http://feint.me/2010/01/the-art-of-zenware/

<comment><USER2> The following doent work on a Windows system and it has been a few years since I have used MacOS - so I do not remember if you can do this.

On any of the *nixes that I have used (Debian, NetBSD) there is a similar 'desktop clearing' trick. Simply switch to a non-X tty.

Ctl-Alt-F1 on my current version of Karmic Ubuntu.

Login and fire up Vim, Emacs, Nano or whatever and you have a zen desktop...

</comment><comment><USER3> Those of you keen to experience a "distraction free writing environment" without the distraction of cost (or ridiculous Zen hype) should try the time- honoured DarkRoom, at <http://they.misled.us/dark-room/></comment>


Senate hearing on National Security Space Launch Programs with Elon Musk - <AUTHOR> https://www.youtube.com/watch?v=he0-SP-BnCQ#t=640

<comment><AUTHOR> I thought the questioning at about 45 minutes in about the cost of space launches (and the subsidies) was good, as well as the answer from Michael Gass.</comment>


Customer Development for Web Startups - <AUTHOR> http://steveblank.com/2010/02/25/customer-development-for-web-startups/

<comment><USER2> Interesting post, but the first flow-chart seems to perpetuate the (Silicon Valley oriented ?) mindset that a startup should be pursuing:

      * Rapid growth

      * Frenzied hiring

      * Profitability relatively late in the game

What about different approaches to building and running great companies ? Why not:

      * Focus on the product and passionate users (ala Paul Buchheit and Gmail)

      * Focus on exactly how you make money from that product

      * Hire incrementally at (or just before) the point you are profitable

      * Accept slower (less fashionable and exciting ?) growth

Maybe that would help align our thoughts around what it takes to build a _sustainable business_ rather than just coding great features ?

It also has the added advantage of freeing you from the hand of the VCs and looking over you shoulder fretting about your burn rate.

<comment><USER3> "Interesting post, but the first flow-chart seems to perpetuate the (Silicon Valley oriented ?) mindset that a startup should be pursuing:

* Rapid growth, Frenzied hiring and Profitability relatively late in the game "

If anything, Steve Blank reccomends a strategy completely opposed to the above. Read his book. The flowchart may make more sense then?

<comment><USER2> I confess I haven't read Steve's book (and probably should), but in the context of this post that flow-chart is misleading if it doesn't accurately represent his position.

<comment><USER4> I think it feels "misleading" because there is no time scale attached to it and maybe the word "Scalable Startup" should be changed. Building a scalable startup is all about the things you highlight... getting to problem/solution fit, then product/market fit... Key is getting there with low burn.

Once you have product/market fit, you have the semblance of a business. You transition towards growth from there.

<comment><USER2> Yep, maybe a timescale would help. However, I still have some beef with the chart and the mindset it perpetuates.

I just don't like the idea of hiring "managers" before profitability is reached. Seems crazy to me.

<comment><USER4> I agree and hadn't really noticed the "Hire managers" text till now... Then again Steve is painting a picture for any type of business from a web startup to biotech.

My interpretation of this process for a Web startup is getting to transition using just the founders (plus advisors).

</comment></comment></comment></comment></comment></comment><comment><USER5> Customer development is an often overlooked process that boils down to understanding what is actually useful for the end user or customer, rather than what the entrepreneur thinks is useful.</comment>


Millennials are sharing streaming passwords, and companies losing millions - <AUTHOR> https://www.cnbc.com/2018/08/19/millennials-are-going-to-extreme-lengths-to-share-streaming-passwords-.html <comment><USER2> In my mind, I'm paying for convenience, not content. I can find the content I want to watch. I have for years. The reason I watch Amazon Video is because I have Prime and why not? The reason I watch Netflix is because the amount of content I want to watch that is in one place is worth the cost. It also lowers the barrier of entry to some random stuff I'd never otherwise watch. So it works for me. But I would have no issues canceling and going back to less ethical sources if the cost outgrew the convenience.

This is why I started paying for Spotify years before I paid for Netflix. It is simply easier to find music there and let it sync between my phone and computer via their service than find every single song, download it, and sync it by hand. Also, there is no way in hell I'm paying $1 per song for thousands of songs. That method is vastly more expensive with none of the conveniences (and usually some sort of lock-in, even if weak).

So in my opinion, companies need to figure out how to make their services more convenient than the alternative. Spotify figured it out, Steam Games figured it out. Netflix figured it out when it was in competition with Blockbuster and Redbox but has since lost it. The fact of the matter is, all the content is scattered across all the services, and the combined cost is not worth it. If we had different services serving all the content (similar to pandora/last.fm/spotify/youtube red) then people could pay for the service, not the content. And ultimately, the first service we are willing to pay for is convenience.

</comment><comment><USER3> Perhaps I have missed something as all the streaming services I have are for my personal use - but can't they just limit the number of concurrent connections from a given account?

It'd be pretty lame if you had to check if your friend wanted to watch something before using Netflix and that'd probably drive anyone who was actually a lost sale (rather than someone who will never pay in any case) to purchase their own account.

I realise there are family deals etc. but that's a risk the companies take in creating those deals (that they will make more money than they will lose).

<comment><USER4> Netflix right now has three plans: one screen in standard definition for $7.99, two screens in HD for $10.99, four screens in Ultra HD for $13.99. (This is what I see looking at the plans available to me in my account.)

</comment></comment><comment><USER5> I'm happy that they are having this problem, perhaps leading them to reduce their monthly fee instead of increasing it deliberately. It's annoying me that you should hold multiple accounts to watch "exclusives" on specific platforms, making it really expensive, especially for young people.

Sharing a password is (and should not be labelled as) a crime, because it is similar to sharing a bus ticket: if I can let my friends use it, why shouldn't I do it?</comment>


How I Graduated from Harvard, Turned Down Google, Got a Job Through Twitter - <AUTHOR> http://www.derekflanzraich.com/2010/06/how-and-why-im-joining-clicker/ <comment><USER2> Good post. Although one thing I don't get. You comment about not being being happy with (potentially) being employee #20,000 at Google. But why did you attend Harvard? Harvard is a pretty large school, and certainly far more than 20,000 students have graduated from it.

I've met many great people who skipped college altogether. Do you think that you were pushed into Harvard, and if you could do it again, you'd skip it? Or at least attend a far smaller school?

It just seems like to me Harvard (or most any college) is a big company where you pay them, rather than them paying you. Of course at Harvard you get to learn a lot. But I expect you'd learn as much in four years at Google (or even Microsoft or IBM for that matter).

Just curious...

<comment><AUTHOR> Great point, really.

With Harvard, the honest answer is that I didn't truly consider many other options-- I think I'm not the only person who'd say I attended Harvard because it accepted me.

That being said, I did learn a ton (more so from my friends and extracurriculars than academics). Harvard is obviously an academic institution, so technically I paid them for the opportunity to do whatever I wanted & use their own resources. If I didn't want to do something, I didn't. If I wanted to spend all my time building sweet shit, I pretty much did.

Google, in a large way, is built on this model-- but it's still a job, it's still got serious responsibilities, and, most importantly, I wasn't sure I'd learn as much there in four years as I would somewhere else.

But I guess we'll see, right?

</comment></comment><comment><USER3> I'm not sure an internet TV Guide qualifies as "awesome shit that matters", but hey congrats on the new gig. At least you'll have responsibilities a lot faster than at Google.

</comment><comment><USER4> Derek, I think what you've done is great and I wish you the best of luck.

I have just one little piece of unqualified advice. In the last couple paragraphs, the blog post felt a little too much like marketing spiel. I get that you're a non-tech (me too) but be aware of that line. It can easily put people off.

</comment><comment><USER5> Are you an engineer? I didn't quite understand what your major was.

<comment><USER6> he mentions some sales position somewhere, so I don't think he's eng

<comment><AUTHOR> Majored in Government/Poli Sci. It was a flexible major, by which I mean I ignored it entirely.

<comment><USER7> So basically you majored in arts and crafts at Harvard (and you're surprised BSing poli sci papers wasn't difficult?), wrote a bunch of blog posts and tweets, have an annoying 'young upstart' linkedin page, but don't know a linked list for a lincoln log, and are going into a non-technical entry level position for a random start-up?

<comment><AUTHOR> Yup.</comment></comment></comment></comment></comment>


H.265 is so slow that it's impossible to even test - <AUTHOR> http://x264dev.multimedia.cx/archives/360

<comment><USER2> _At this rate, it would take a full two weeks to encode 10 seconds of HD video. On a Core i7. This is not merely slow; this is over 1000 times slower than x264 on "placebo" mode._

Computers have gotten much faster since May 2010?

<comment><USER3> >Computers have gotten much faster since May 2010?

Really?

I've wondered this for a while.... from my (idiotic consumer) perspective it seems like we are moving at a snail's pace. If I buy an iMac today, it comes with the exactly same processor as it did 13 months ago. Almost exactly the same as a year before that (all had quad cores at various configurations). And it's not really any different browsing custom PC vendors if I want to keep prices reasonable.

Shouldn't I be able to get a quad-core 7ghz for $2000 by now according to the corollaries of Moore's Law?

<comment><USER4> I am not an expert in this field, but I agree with you from the consumer perspective. E.g., the new macbook airs don't seem radically faster than my macbook from a few years before, it is just thinner. It seems like Moore's law is dead/dying and instead being replaced by Koomey's law, as others have noted

[http://www.economicsofinformation.com/2011/09/is-koomeys- law...](http://www.economicsofinformation.com/2011/09/is-koomeys-law- eclipsing-moores-law.html)

</comment></comment></comment><comment><USER5> I recall the days where I'd start mp3-encoding a freshly-ripped CD and find something to do for an hour or two. I recall the days where I'd render the demo files for PoV-Ray at the highest quality at my PC's max VGA resolution (800x600) and then go to sleep, wake up in the morning to check the progress (half-way done -- w00t!), then come home from work to see one of Dan Farmer's eerie creations completely rendered.

I have no problem with processes that are so computationally-intensive that they are rendered impractical. Hardware will either catch up and it will be adopted, or it won't.

The proof is in the pudding, though. How does the H.265 encoded stuff _look_?

Perhaps the new spec is aiming to benefit huge media companies that can afford vast runs on a GPU cloud to encode, thus preventing us little folks (or the warez scene) from taking advantage of halving the bandwidth/space requirements (or doubling the video quality).

</comment><comment><USER6> Two years old: 05/07/2010

</comment><comment><AUTHOR> From the other thread:

1\. At the reported speeds, it would take 3 years on a 100 machine cluster to encode a 1.5h movie like this.

2\. It's 10x better today (fact?). So you'll only need 4 months on that cluster.

</comment><comment><AUTHOR> Looks like this thread has been taken off front-page. Why?

</comment><comment><USER7> > 05/07/2010</comment>


TechCrunch founder Mike Arrington to take a break - <AUTHOR> http://www.mercurynews.com/breakingnews/ci_11576369

<comment><USER2> He needs the break. TechCrunch now has a CEO and can go on without him and focus on the tech community. Arrington has been distracted for a long time, seems he has posted some very random posts which lead TechCrunch toward a ValleyWag type site. The TC community was clearly not happy with that.

However, it is amazing that he had to put up with the kind of abuse he has. That's just horrible, and there is no reason he should be the victim of that kind of treatment.

Best of luck to Mike, he did a great job creating and building TC. I'm sure he'll have other great successes in his future.</comment>


From an iPhone 5 to a Nokia Lumia 800 - <AUTHOR> http://randomerrata.com/post/47535628030/iphone-to-lumia-800

<comment><USER2> This is a very incomplete and slightly biased article.

1) He compares the highest end latest greatest product of Apple, to the Lumia 800, when the Lumia 920 is the high end phone for that. 2) The article talks only about minor UI quibbles, when that is something you just have to get used to. Lumia has better mapping and directions, and a host of other core apps. 3) The hardware design of the Lumia series rivals any other smartphone (the HTC 8x comes close), simply because of its simplicity and warmth. It looks like an organic device.

</comment><comment><USER3> Even my iPhone 3GS feels much more updated than Lumia 800</comment>


Venture Capital Makes a Comeback, Takes Web Startups With It - <AUTHOR> http://mashable.com/2010/07/17/vc-q2-2010-startups/?utm_source=feedburner&utm_medium=feed&utm_campaign=Feed%3A+Mashable+%28Mashable%29

<comment><USER2> Yes indeed. Internet investments hit a five quarter high. And eCommerce looks to be on track to hit the highest level since 1999-2000 which is no small feat. Social commerce companies increasingly hot within ecommerce. Within internet, gaming also was a recipient of venture funding.

Also, seed investments are increasingly "encroaching" on Series A territory as VCs make more smaller bets.

For entrepreneurs in Cali, Mass and NY, the news was good as over 70% of funding and 65% of deals went to entrepreneurs in those 3 states. NY had 70% of its financings occur in internet companies showing the city's increasing focus on web companies.

For data geeks, lots of (free) Q2 data (graphs, trends, visualizations, etc) here in this 50+ page report:

[http://www.docstoc.com/docs/46989929/Q2-2010-Venture- Capital...](http://www.docstoc.com/docs/46989929/Q2-2010-Venture-Capital- Activity-Report)</comment>


Humble Book Bundle: Big Data by Packt - <AUTHOR> https://www.humblebundle.com/books/big-data-books <comment><USER2> Does anyone have experience with any of these books? Any you'd recommend?</comment>