Natural number game - <AUTHOR> https://wwwf.imperial.ac.uk/~buzzard/xena/natural_number_game/ <comment><USER2> First let me point out that you can jump to any level at any time, so you lose your progress, but only in a weak sense, if you lose your browser tab. You do lose your proofs though.

The natural number game was made by passing a repository which contains essentially nothing but Lean code, through this generic tool [https://github.com/mpedramfar/Lean-game- maker](https://github.com/mpedramfar/Lean-game-maker) which makes the html pages from the Lean code. If there is anyone out there who understands the Lean game maker code (I don't, it was written by my co-author) and is interested in implementing some kind of client side storage then feel free to ping me either at my Imperial email address or at the Lean Zulip chat [https://leanprover.zulipchat.com](https://leanprover.zulipchat.com) .

<comment><USER3> Did you use a similar tool to make this mixed formal/informal presentation of the squeeze theorem? [https://wwwf.imperial.ac.uk/~buzzard/docs/lean/sandwich.html](https://wwwf.imperial.ac.uk/~buzzard/docs/lean/sandwich.html)

<comment><USER2> I used Patrick Massot's Lean Formatter [https://github.com/leanprover- community/format_lean](https://github.com/leanprover-community/format_lean) to make the Lean web page with the analysis theorem on, and Mohammad Pedramfar's Lean game maker was very much inspired by the code in the formatter.

</comment></comment></comment><comment><USER4> This is a very nice introduction to theorem proving, only caveat is that you cannot save your progress and the lean interpreter in the browser can lock up.

But if you just think of it as spaced repetition I'm sure everyone will agree that it's a great feature! :)

<comment><USER5> Note that the levels are "fake", so if you lost your progress that's sad, but you can just skip ahead to where you left. (We're looking into adding localStorage or something like that... but we aren't really coders. PRs are welcome!)

</comment></comment><comment><USER6> I'm having a lot of fun with this, having just completed addition.

I suppose it's natural [pun not intended] to feel like you don't really know what you're doing except symbolic expansion / replacement until you better grok the process, but perhaps that's part of the gamified fun.

</comment><comment><USER7> Previously: A real nice similar project using Coq: [https://news.ycombinator.com/item?id=4014646](https://news.ycombinator.com/item?id=4014646)

That's very polished, visually or at least typographically, which might not please everyone. But the idea of "proof by pointing" is solid.

OTOH the 'UX' of this Lean system is all over the place: being told to remove the word 'sorry' is a bizarre way to start. With my browser and reasonable font sizes, it's just not possible to make the column wide enough to get all the text on the same page. So the following paragraph refers to something that's not visible (because it's at the end of the text).

"At the bottom of the text in this box, there's a lemma, which says that if x, y and z are natural numbers then xy + z = xy + z. Locate this lemma (if you can't see the lemma and these instructions at the same time, make this box wider by dragging the sides). Let's supply the proof. Click on the word sorry and then delete it. When the system finishes being busy, you'll be able to see your goal -- the objective of this level -- in the box on the top right. [NB if your system never finishes being busy, then your computer is not running the javascript Lean which powers everything behind the scenes. Try Chrome? Try not using private browsing?]"

This paragraph is also bad because it's all jumbled up. There's advice on resizing the UI, there's a casual/vague comment on browser compatibility, and there's the random placeholder word "sorry" which appears to have no pedagogical purpose. All this as well as the fact that the lemma isn't yet visible.

From a UX, accessibility, and teaching aspect, there's a lot of room for improvement. The current state of this app really comes across as idiosyncratic rather than straightforward. The experience has got a complicated, intrusive, handmade personality rather than being a lucid exposition. Logitext has a particular personality as well but it's a slicker one. It hides the incidental complexity better (though the implementation isn't necessarily as simple as it should be).

<comment><USER2> I totally agree that it's all over the place. I am a mathematician and have just thrown this together because I wanted my students to be able to learn Peano arithmetic (something I teach in my course) in a fun way. I am in desperate need of someone who knows something about UX.

</comment></comment><comment><USER8> Very cool! Didn't know about Lean (but I have some experience with Coq). Can't wait to dig in more. [https://leanprover.github.io/about/](https://leanprover.github.io/about/)

<comment><USER5> Note that [https://leanprover.github.io](https://leanprover.github.io) is all about the frozen version of Lean 3, while the devs are working on Lean 4. In the mean time, the community is maintaining a fork of Lean 3 with some nice features + lots of docs and other material. See [https://leanprover- community.github.io/](https://leanprover-community.github.io/)

</comment></comment><comment><USER9> Previously: A real nice similar project using Coq: [https://news.ycombinator.com/item?id=4014646](https://news.ycombinator.com/item?id=4014646)

That's very polished, visually or at least typographically, which might not please everyone. But the idea of "proof by pointing" is solid.

OTOH the 'UX' of this Lean system is all over the place: being told to remove the word 'sorry' is a bizarre way to start. With my browser and reasonable font sizes, it's just not possible to make the column wide enough to get all the text on the same page. So the following paragraph refers to something that's not visible (because it's at the end of the text).

"At the bottom of the text in this box, there's a lemma, which says that if x, y and z are natural numbers then xy + z = xy + z. Locate this lemma (if you can't see the lemma and these instructions at the same time, make this box wider by dragging the sides). Let's supply the proof. Click on the word sorry and then delete it. When the system finishes being busy, you'll be able to see your goal -- the objective of this level -- in the box on the top right. [NB if your system never finishes being busy, then your computer is not running the javascript Lean which powers everything behind the scenes. Try Chrome? Try not using private browsing?]"

This paragraph is also bad because it's all jumbled up. There's advice on resizing the UI, there's a casual/vague comment on browser compatibility, and there's the random placeholder word "sorry" which appears to have no pedagogical purpose. All this as well as the fact that the lemma isn't yet visible.

From a UX, accessibility, and teaching aspect, there's a lot of room for improvement. The current state of this app really comes across as idiosyncratic rather than straightforward. The experience has got a complicated, intrusive, handmade personality rather than being a lucid exposition. Logitext has a particular personality as well but it's a slicker one. It hides the incidental complexity better (though the implementation isn't necessarily as simple as it should be).

</comment><comment><USER10> Another kinda related website: The Incredible Proof Machine [http://incredible.pm/](http://incredible.pm/)

</comment><comment><USER11> This is really fun. Thank you!

</comment><comment><USER12> This is cool!</comment>


Basic income vs. Capitalism - <AUTHOR> http://stumblingandmumbling.typepad.com/stumbling_and_mumbling/2013/07/basic-income-vs-capitalism.html <comment><USER2> The New Zealand Treasury has conducted a preliminary assessment of a guaranteed minimum income (GMI) in New Zealand[1]. It's worth a read.

It's conclusions were broadly:

* To be cost neutral, it would require a significant increase in taxation rates (to a flat tax of ~45% - 50%).

* Although the Gini coefficient is improved, those who currently receive government support would likely receive less under a GMI scheme, which may have the effect of distributing more money away from those most in need.

A brief discussion of the "broad ranging" effects on efficiency and economic growth is also included.

[1] [http://igps.victoria.ac.nz/WelfareWorkingGroup/Downloads/Wor...](http://igps.victoria.ac.nz/WelfareWorkingGroup/Downloads/Working%20papers/Treasury- A-Guaranteed-Minimum-Income-for-New-Zealand%20.PDF)

</comment><comment><USER3> > capitalists, who want a large labour supply...

Even Friedman argued for the NIT, noting it was less paternalistic than food stamps or other benefits to simply let the poor allocate their money however they see fit (and simple transfers would likely lead to lower administrative costs).

But this implicit line that there's a secret cabal of "capitalists" all persuaded by some idea that they never publicly proselytize, but all coordinate action in order to pursue... it sounds a bit conspiratorial. Cribbing lines from marxist economic theory, it's going to alienate half your audience or more, and immediately make the argument deeply partisan, when it needn't be.

I mean, believe that line or not, but I think the argument is stronger without falling down the rabbit hole of pretending to know what "the capitalists" are up to.

<comment><USER4> > But this implicit line that there's a secret cabal of "capitalists" all > persuaded by some idea that they never publicly proselytize, [...]

The way the Marxist argument for class interest works, is that there does not need to be a secret cabal. To discuss this in the context of basic income (BI): Some capitalists, that is some owners of capital, depend on cheap unskilled labor. Each of them concludes independently, that a BI is against his own interests, since it would reduce the incentive to take unpleasant jobs and force them to pay their workers more.

Or more generally, some people have similar interests, not because they conspire, but because they are in a similar socio-economic situation. And this socio-economic situation generates class interests. ( Marx then goes on to argue, that the capitalist class can more easily leverage its interests, and therefore the workers need class conscious to counter this leverage.)

<comment><USER5> > Marx then goes on to argue, that the capitalist class can more easily > leverage its interests, and therefore the workers need class conscious to > counter this leverage.

And anyone who disagrees with Marx on hearing his ideas is suffering from False Consciousness and needs to be Re-Educated, perhaps in a Camp somewhere.

<comment><USER6> Why the strawman?

You do not need to be a marxist to agree one some of the basic principles put forward.

Marx was not 100% wrong, he was just wrong some very specific and important places.

<comment><USER5> > Why the strawman?

The Gulag Archipelago.

> Marx was not 100% wrong, he was just wrong some very specific and important > places.

Of course he wasn't 100% wrong. All modern developed countries have adopted some of his ideas, such as public schools and laws against child labor.

His notions of an Apocalyptic struggle between Labor and Management, his totalizing philosophy which seeks to explain all social conditions through one dialectic, and his refusal to admit that capitalist countries could adopt some of his ideas and stay capitalist, however, lead to some of the worst regimes in history, and we can't forget that.

<comment><USER6> Do you also blame Nietzsche for Nazism?

Marx analysed quite correctly the era he lived in and the problem with capitalism. He was just wrong to think that this would never change.

For instance today may of us are the owners of our own means of production. You don't need your employer to buy you a machine and they can't just replace you without having lost the knowledge that you represent.

Marx didn't live in such a world and thus his premise wasn't universal enough.

<comment><USER5> > Do you also blame Nietzsche for Nazism?

Of course not. Marx was directly responsible for Communism because he laid the blueprints, and the USSR implemented them. Therefore, Marx is responsible for the USSR.

<comment><USER6> But communism was not what happened in the USSR.

<comment><USER5> Yes, it was. It's dishonest to claim that your system has never been tried when it has been tried and failed.

You can go down the list of things the Communist Manifesto proposed and see that the USSR did all of them: [http://www.stardestroyer.net/Empire/Essays/Marxism.html](http://www.stardestroyer.net/Empire/Essays/Marxism.html)

<comment><USER6> Ahh yeah when you are out of arguments go for the persons motives right? Where have I ever claimed to that communism was my system? Pray tell.

I think you need to read up on history my friend. And perhaps read the actual work of Marx before being so cock sure about what you are claiming.

Then we can have an adult discussion about the many issues with communism.

<comment><USER5> Your condescension means you didn't read my cite or engage me honestly at all. And I even picked out the easy-to-read citation, too.

</comment></comment></comment></comment></comment></comment></comment></comment></comment></comment></comment><comment><USER7> I'm a programmer. My job is to free people from work, for more then 35 years. An unconditional/basic/universal income or negative tax would allow those people to enjoy the freedom I provided for them, while unemployment is a shame in current system.

Its interesting to notice that those who promote a basic income here in Germany are hardcore liberals/libertarians, while conservatives, socialists, unions, communists here still follow the puritanic thinking that "Arbeit macht Frei".

<comment><USER8> Your job was never intended to free people from work. It was simply to do what people did, faster, more accurately, and many times over.

If your code was slower and more expensive than someone doing the work manually, you would doing another job.

I think.

<comment><USER7> My current focus is on machine learning for industrial application. 15 years ago my main focus was the paperless office. And before that common office automation.

Its true, that not every coder is freeing people from work.

But in average we destroy stupid jobs, and replace them with smart machines. Those jobs will never come back. The only kind of work that will be left are social work, that is currently badly payed.

The result is that there will less demand for work, the wages will sink to the botton, nobody would be able to buy things, and capitalism will destroy itself.

The only way to avoid a communist slave state is an universal income.

</comment></comment></comment><comment><USER9> I suspect that basic income is a stable equilibrium given a "one person, one vote"-type of democratic system.

It's in each person's best interests to vote for more wealth redistribution if they're below the average, and there will always be more people below the average than above.

Further, it's in each politician's interest to both promise and deliver such a thing, as it helps them win first and following elections.

<comment><USER10> But it's also very easy to convince virtually anyone that they're a part of the hardworking middle class that's keeping this country afloat, as opposed to those leeches that would use their basic income to hang around and do nothing.

<comment><USER11> What middle class? The fact that we're discussing an across the board baseline income is indicative of the state of the "middleclass". What a disaster, hate to be so melodramatic.

Those leeches are the least of our worries.

<comment><USER12> When the word "leeches" is directed toward people at the "bottom", it makes me wonder what people think of when money is created out of thin air, lended to banks at ZIRP and who then lend to people at anything but, who then use such money (or credit) to buy goods (created by their peers) that people at the helm of such institutions like banks can also buy…

<comment><USER13> not to mention industries whose profits are generated solely on the basis of tariffs and subsidies (various areas of industrial farming: corn, sugar, etc)

</comment></comment></comment></comment></comment><comment><USER14> This is just describes another transitional point in human history. In any given year, we can produce the same output with less labor. As this effect compounds, take this pattern to its extreme -- producing all the output the world could ever need with virtually no human labor. In such a scenario, what is the meaning of a wage? What does it mean for a person to produce "value?" How would humanity, whose genome has been shaped under the chisel of scarcity, adapt to a system where such a thing did not exist?

In this thought experiment, I believe it becomes evident that the laws of economics, as we understand them, are NOT timeless. Modern economics has gone on a tangent, creating a system of analysis and theory that only works for this microcosm in our existence. It is only as our economy approaches the scenario described above that the true laws of human economics can become evident.

<comment><USER15> Not every part of human labor/involvement will be totally replaced (if your imagination needs a hint, think about the oldest occupation if the world). There are services that rely on human interaction and as the world evolves the demand for such specific social-involved activities will continuously diversify itself. I also think that the access to the limited resources (think of space if nothing else) will always maintain in a way or another a scarcity- based system.

<comment><USER14> You never know.

I think the frailty of the human ego is more likely to manufacture scarcity than anything else.

</comment></comment></comment><comment><USER16> So sick of non-economists advocating economic policy which they don't understand.

Welfare programs of any type are only viable when the ratio of payers to payee's is high. They're desirable at this level. However, entitling every citizen to money which for he does not have to work for exposes the government to UNLIMITED liability as humans are free to create more humans at any time they choose. We cannot expand the GDP any time we would like, in fact paying people not to work removes the excess value of their labor from the GDP (assuming there was a job for them).

When you total up Social Security, Medicare and Medicaid debts the United States is completely broke. Something on the order of 100 trillion dollars of future liabilities. We can't even afford our modest socialism we have now.

TLDR? The numbers don't work.

<comment><USER17> 'basic income' or 'negative income tax' is an idea supported by Milton Friedman, who is generally regarded as a knowledgable economist of the Chicago school and a critic of many aspects of the Keynesian welfare state. You may know Milton Friedman from such economic ideas as 'fiat currency' which has been the dominant monetary policy globally for the last 40 years.

Since non-economists should not be critiquing economic policy according to you, may I ask what your credentials are in this field?

[http://en.wikipedia.org/wiki/Negative_income_tax](http://en.wikipedia.org/wiki/Negative_income_tax)

<comment><USER18> Uhh.... fiat currency is not monetary policy. You meant monetarism, which has most certainly not been the dominant monetary policy for the last 40 years. It's been influential, yes. There have been periods of time in which it has been in vogue, yes, but you certainly cannot call it _the dominant monetary policy globally for the last 40 years._.

</comment></comment></comment><comment><USER19> Last week Breitbart threw a number of 144,000,000 as the current number of working adults in the United States. It sounded about right.

Let's use 150,000,000 instead and pay them a basic income of $20,800 per yr ($400 per wk, $10 per hr). That's $3.120T with a "T", just south of scheduled 2013 U.S. federal expenditures of $3.803T -- with a $900B deficit.

A BI would double federal expenditures. Honestly, how likely is it for a guaranteed basic income to pass both houses of Congress and be signed by the POTUS in the next 5, 10, or 25 years?

<comment><USER20> Not double, actually, because part of the point of a basic income is to replace much of what we currently think of as welfare. For example, Social Security as we know it could simply vanish, its function completely replaced by the basic income. In theory, salaries for government employees of all types could also be reduced by an amount equal to the basic income, leading to no change in take-home pay but saving money within the programs which employ them.

Nevertheless, as you point out, it would necessarily represent a massive expansion in federal spending: on the order of 50% or more.

</comment></comment><comment><USER21> I wonder what we'd all pay to have garbage hauled away if we didn't have a ready supply of ex-convicts for whom this was one of the higher paying jobs available to them?

<comment><USER22> That's a really good question. There are all manner of dirty jobs that people only do because they have no other option except starve or steal. How that differs qualitatively from slavery is beyond me, but I do get the feeling that we aren't paying the "real price" for these services simply because we have plenty of ex-cons in the U.S. and seem happy to keep making more.

But aside from that issue, I think a basic income is the only truly fair way to operate a fiat currency. We know a few things for sure, and one of them seems to be that a small amount of inflation is good for an economy.

One way to inflate is to print money, and the way we do distribute "new money" in the form of debt is essentially a regressive tax. Much fairer would be to give everyone the same amount in cash form.

This system would be so simple it would prevent a lot of the abuses and favoritism of the current system. Imagine if the inflation rate were fixed; say a 2-3% increase in money supply each year, guaranteed, distributed equally among all citizens. It's really hard to game a system like that.

And that's probably also why it's not being seriously discussed in political circles. What's the advantage to politicians?

Forget "capitalists," this kind of thing is the worst nightmare for everyone who is currently a winner in the current system. If I were to propose to devalue EVERYONE's wealth by 2-3% a year so that I can distribute an equal amount to everyone, I could expect a huge fight from anyone with any accumulated wealth.

But as for me, I can't think of a more fair and humane way to operate a system of money.

<comment><USER23> People would still do those dirty jobs, those jobs would just have to over a higher overall payout then just BI. Services that are largly based on low skilled laber would probebly be more expensive.

> But aside from that issue, I think a basic income is the only truly fair way > to operate a fiat currency. We know a few things for sure, and one of them > seems to be that a small amount of inflation is good for an economy.

It is not clear that a small amount of inflation is good for the economy. Also alternative montary transiation mechanism are not really unfair in any meaningful way. Also inflation is driven by expected montary growth, if the central bank has a credible target the would have to do very little or nothing to reach that goal.

You can not fiance any goverment programm by montary expention. Exept when you increase the speed of expantion but thats a bad idea.

Also giving money directly to people as a montary mechanism has a huge flaw, if you overshoot your targed you can not go back easly. The Central Bank buys and sells bonds/stocks instead of dropping money from airplanes because the must have a way to get money out of the system again. You could of course do that by equally taking from everybody bank account but that is not something goverment should have the power to do.

Also having 2/3% inflation does absolutly not mean that everybodys wealth is now 2/3% less.

I would really, really suggest to to first understand some montary theory befor you come up with your own montary system, its harder then you might think.

<comment><USER22> I'm not suggesting the government's sole function is to print and hand out money and call it a day. There are other methods of taxation and spending (income tax over basic income amount, or directly spending money on infrastructure, for example) that could reign in an overly inflationary economy.

The current method of injection of money into the economy via debt is broken, benefits mostly banks, and requires that a percentage of people continually go bankrupt due to lack of available cash in the future.

Basic income is an alternative means of monetary expansion that would fix this.

Not that you have to inflate with basic income, you could simply redistribute wealth. But that requires people decide who takes how much from whom, and is ripe for favoritism. Inflating via basic income is the most egalitarian method I can think of.

<comment><USER23> > The current method of injection of money into the economy via debt is > broken, benefits mostly banks, and requires that a percentage of people > continually go bankrupt due to lack of available cash in the future.

Sorry where did you come up with this? The CB can buy any asset with newly created money, this includes bonds. How does this in any way require a percentage of people going bankrupt?

If you really belive that the amount of cash in the economy is bound to goverment dept and that leads to a lack of cash I would strongly suggest you pick up a book on montary theory because that makes absolutly no sence.

> Basic income is an alternative means of monetary expansion that would fix > this.

Have you even read what I wrote?

> Not that you have to inflate with basic income, you could simply > redistribute wealth. But that requires people decide who takes how much from > whom, and is ripe for favoritism. Inflating via basic income is the most > egalitarian method I can think of.

Again. Have you actually read why montary transmission is not done in a direct the people way? Its not like you came up with something new, the idea was around but its simply not workable because its a one way transmission. Its like you are saying that if a ship has to turn to the left its okay to have steering wheel that can never steer to the right. What happens if you steere to the left to much for a time, what if you have strong current from the right (witch in this analogy would mean for example a change in money demand).

If you really want BI, and to it in a natural way. Make one basic tax, flat or prgressiv does not really matter as long as it is one clear function and stop any exeption people can take (alternative is a consumtion tax that applies equally to everything), and set a number of BI you want to pay out.

Montary policy should just be conducted in the usual way to hit its target, your big error is to assume that if the central bank has a 2% inflation target it has to print money, look at australia they have relativly high inflation but the montary base is very low. The market ajusts to your target and if you have a credible target you dont actually have to print any money.

<comment><USER22> [http://tranzitioning.com/index.php/money-creation- destructio...](http://tranzitioning.com/index.php/money-creation-destruction- bankruptcy-and-default)

</comment></comment></comment></comment></comment></comment><comment><USER24> I will say that 'vs' isn't strictly needed here; no reason the means of production can't be privately owned while BI is implemented.

Now, that would put a bit of hurt into the reserve army of labor, as the article mentions...

</comment><comment><USER25> Actually BI is gradually coming in the form of social safety nets for everyone. Once we disrupt college education with courses anyone can study at home at their own pace from the best professors, lots more people will be able to educate themselves for the new economy.

That said, there will be a growing unemployed class, and many are are already perpetually on government subsidized programs such as housing, etc. The question of whether this is worse than a negative tax is unclear.

What IS clear is that capitalists will want people to remain consumers, even as they automate everything. So redistributing money to them by taxing the machines is inevitable. The real question for me is, what will happen to all the restless, disaffected people whose services are no longer required, and whose blogs are rarely read? Especially men.

[http://magarshak.com/blog/?p=97](http://magarshak.com/blog/?p=97)

</comment><comment><USER26> Murray Rothbard called this "probably the single most disasterous economic idea ever invented". He spoke on this topic during a speech on Milton Friedman. It's worth a listen.

[http://www.youtube.com/watch?v=AenYS193mSI&t=10m34s](http://www.youtube.com/watch?v=AenYS193mSI&t=10m34s)

<comment><USER27> I'm all for differing viewpoints, but prospective watchers should know that Murray Rothbard considered Adam Smith an anti-capitalist proto-Marxist. He also had some very 'interesting' views on women's liberation, race, homosexuality, slavery, etc. etc.

<comment><USER26> Really an odd way to show you are for differing viewpoints, to inoculate "prospective watchers" by opening the floodgates to a host of disparate subjects that have nothing to do with the topic at hand, all the while winking and nudging that he is a bigot regarding said subjects.

</comment></comment></comment><comment><USER28> AFAIK, the biggest experiment in Basic Income is happening in Brazil. Come and ask us in 2030 how it did go. Today, all I can say is it serves the politicians in power to keep their power. People who receive state BI seldom vote different, afraid of losing the benefit.

<comment><USER29> What's happening in Brazil is not BI because it's not for everyone. Recipients have to prove they are poor enough (at least state that they are)

</comment></comment><comment><USER30> Hmmm. I am beginning to believe any author who writes essays with the word "capitalism" in it neither understands capitalism or is able to work with the concept in the abstract. Usually it's just regurgitated Marxist leftovers.

And let's see what we have: "A BI breaks with a fundamental principle of the welfare state. This, wrote Beveridge in 1942, is "to make and keep men fit for service.*" One function of the welfare state is to ensure that capital gets a big supply of labour, by making eligibity for unemployment benefit conditional upon seeking work. BI, however, breaks this principle.In its pure form, it allows folk to laze on the beach all day."

Okey dokey now. The welfare state is a product of the voters, not the result of one particular report in the 1940s in the United Kingdom. I can quite assure you that the voters were not interested in "providing labour to capital". They were interested in being compassionate to their fellow man, just as they were in the States. The welfare state is a lot bigger than wartime England. If anything, the modern welfare nation has its roots in the late Victorian period, as large groups of people realized that they were being significantly mistreated by the system.

This is an important point, because if you miss it you miss the rest of it. The social safety net, as most voters understand it, is to provide a lift up to those in need, and some sort of permanent assistance to those who are incapable of leaving their present circumstances. This means that any welfare state has as its primary mission the determination of the difference between those who are temporarily downtrodden and those who will not work, either because of physical or attitudinal reasons. Voters feel differently about these different groups of people. Therefore the policies towards them are different.

"capitalists, who want a large labour supply" \-- no, capitalists want to trade stuff. Sometimes, like in the 1800s, this required a large labour supply busy as beavers in the sweat shop making widgets. Sometimes nowadays it might involve really expensive robots and 5 laborers. Or 3 web programmers and some space on AWS. These old ideas of capital and labor are dead. Please let them rest in peace without digging them up so often.

Minimum wages and basic income policies all do the same thing -- raise the floor at which most folks can enter into productive trade with others. This raises prices and increases unemployment. These kinds of ideas sound great. Who wouldn't want $25 per hour wages and guaranteed income for all? But all you'd end up with is $15 hamburgers and $34 gasoline. You don't do anything but raise the table stakes for people, like certain homeless, just don't want to participate in society. It increases poverty and suffering. Counter- intuitively, it does not make things better.

People need to pay special attention to those ideas which produce an emotional gut-feeling of "hell yeah! Why haven't we done that?" There's usually a really good reason that does not involve economic theories from the 1890s.

<comment><USER31> "Minimum wages and basic income policies all do the same thing -- raise the floor at which most folks can enter into productive trade with others."

Can you elaborate on this? Because it looks to me (only minimally educated in economics) that minimum wage and basic income work in completely _opposite_ directions here.

With a minimum wage, a person may be willing to do some work for $X, and another person may be willing to hire him to do that work for $X, but the law prevents them from entering into an agreement to actually do it. Thus, anyone not able to produce at least as much value as the minimum wage simply does not work at all.

With a basic income, you no longer need a minimum wage. If a person is willing to work for a penny an hour, let him. The floor drops, not rises, because people can engage in very poorly-paid work if need be, and still be able to survive. A person whose labor is only worth $2/hour won't have a job today, but could very well have a job in a system with a basic income.

Did I miss something?

<comment><USER30> I believe you missed pricing pressure.

If I'm selling apples, I'm selling them at whatever the market can bear. Beats me what that is. I label the price 1-for-a-dollar, and they sell out. So tomorrow I charge $2. And so on. There is no certain "price" \-- price is something that's determined by the reaction of the buyers to the offers the sellers make.

That's the way it is with everything: food, rent, insurance, car repairs, drugs, services, and so forth. Everything is negotiable, and it's all dynamically determined. So if everybody in town now has an extra 10K -- or even if the poor people now have a lot more free cash, then my apple pricing experiment will yield a higher result. So I'll charge more. I'm not trying to screw over anybody, that's just the way pricing works.

The only thing you get with giving everybody a new floor for the amount of cash they have is a new floor for how much the cheapest items cost.

This is tricky to see at 5-10K, because our minds don't take into account the thousands of tiny transactions each person makes in a year and the very small amount of difference it would make with each one. So just pretend that it's 100K, or 500K. What would happen?

And that's just pricing pressure for _purchasing_. The same pressure would exist for employment, dramatically increasing unemployment.

It just doesn't _do_ anything, except cause economic chaos, make all the dollar figures higher for everything, and increase unemployment. And punish those folks who don't want to participate in society. That's not a lot to be proud of.

<comment><USER32> I agree that price is simply a measure of what the market will bear, but I don't see how a basic income results in exhausting the additional supply of disposable income through inflated prices.

To continue with your apple market example, you could try to charge $2 or more per apple, but pretty soon other people will realise that they can employ their own staff to run an orchard and deliver apples to the same market at a marginal cost far less than that, and competition will drive the market price back down.

With a basic income, people's basic needs would be met and any additional income earned would be a supplement. If they agree to work for $1 an hour picking apples, then that is the price the market will bear for that particular skill and the price for a single apple will be reflective of this.

A minimum wage on the other hand works in the opposite direction. If it is set to $50 an hour, then sure, the costs of apples, along with most other things, will skyrocket, but there will also be a huge amount of deadweight loss as people simply choose to forgo employing others for many skills in the first place.

<comment><USER15> "To continue with your apple market example, you could try to charge $2 or more per apple, but pretty soon other people will realise that they can employ their own staff to run an orchard and deliver apples to the same market at a marginal cost far less than that, and competition will drive the market price back down."

Unless I reinvent the market and brainwash you that my Apple is like no other and it's worth selling your kidney for it. This way I'll grow my Apple company to record high stock prices and I'll sue any other kind of vegetable sellers. You'll think you'll figure out a way to beat us in the end, but the truth is that pretty much everything (even the Jobs) will be ours eventually and everything you ever dreamed to afford will be ours to give.

</comment></comment></comment></comment></comment><comment><USER33> Why doesn't this article discuss the repercussions of such a plan?

These ideas of "helping everyone and feeling good" fail to understand human behavior. Basic income would reek havoc on the real estate market as people (of the trashy uncivilized variety) would try to move into nice neighborhoods with their new funds that they didn't work for and earn and "fuck up the neighborhood" basically.(This already occurs with section 8 housing) Another consequence is that rent and housing would rise substantially.

The price of a home isn't just determined by the value of the home itself but by the highest price the local market can afford to pay. People who are not in real estate don't understand this.

The flawed assumption to this plan is that all or most poor people are poor because they just haven't been given enough chances or nice things. This emotional ideology usually belongs to young collage students who have never worked with the public and seen the real asshole-ery and primitive baboon-ism of humanity and believe everyone is a nice person. Or adults who grew up in their parent's nice neighborhood miles away from reality. I know you're going to think I'm the biggest most evil asshole in the world but after working with the public (everyone in my family does) NOT a cool startup in a collage town I have to tell you the truth: Quite a few poor people (not all of course) are poor for a reason. Sitting down and talking with them will usually give away these reasons immediately. They don't bring value, they can't hold jobs because they have poor impulse control, they're short term decision makers, they don't want to educate or better themselves, they're hyper-sexual, were born with a lower IQ, they can't commit to jobs they do have, they smoke pot like crazy. Basically they don't have nice things for a reason. And every time you try to give them nice things they ruin them and don't appreciate them.

I used to be one of those "help everyone and make the world happy and good feelings and gosh I just wish we could all hold hands". I have completely left that ideology as it's a fantasy. A lie. These smart intellectual folks with ideas on how to help the poor completely forget to include the above mentioned human problems. All they see is numbers and an equation and they want to balance it all out on the table. But it never works like that in real life.

I know during this recession a lot of people who deserve nice things have had them taken away, but any attempts to correct this through government, welfare, and basic income is just going to go in the wrong hands.

There are devastating repercussions for paying people to do nothing or giving people something they haven't earned. Let's stop chasing pipe-dreams because they "sound nice".

[http://en.wikipedia.org/wiki/Pruitt%E2%80%93Igoe](http://en.wikipedia.org/wiki/Pruitt%E2%80%93Igoe)

<comment><USER34> 'Basic income'? Lets start with 'Basic grading'

Currently students earn grades A-F. From now on we should have a 'basic grade', all students will be given a 'D' \- a basic passing grade. You get your 'D' even if you don't even go to class. and since don't go to school well we might as well just give them the diplomas too...

I would like to see the idealistic college students and professors apply this concept to their real world and see how it works out...

The idiocy of this becomes obvious in this context.

<comment><USER35> You're missing the reward for those who get higher grades.

If students with higher grades got better food, chair and transport (that's what happens in basic income), you would probably see some students trying their best.

</comment></comment></comment><comment><USER36> Here's how I see the BI debate. The argument made against it is that it would generate a class of parasites at the bottom of society.

We, right now, have a permanent parasite class at the _top_ of society and that's worse. They can treat labor like shit because labor has no other option, and this surplus generated by desperation makes those at the top extraordinarily rich.

BI is the only solution I can come up with that makes sure labor is _respected_.

However, any BI program should be tied to per capita GDP. Thus, if it actually does have a negative effect on society (which I doubt it will) the payments drop and reverse that effect.</comment>


Ask HN: Cool math-topics for small children? - a-saleh For some time I am pondering to start something like a math-club for my daughter and her friends, in the spirit of Zvonkin's Math from 3 to 7 [1]
Thing is, creating math-puzzles is hard work so I'd like to know if some of you have resources you'd use :)
My 5 year old seems to like when I discuss math with her, but when I was looking at my local library, I mostly found materials either for older kids (ie. teaching them to solve systems of linear equations with word puzzles after they already know addition and multiplication) or these were really focus on the drill of counting numbers, and that seemed boring. The best book I so far found in a bookshop was Bedtime Math [3], because it at least has interesting trivia ccompanying the word problems, and some are appropriate for a pre-schooler. But it still is mostly counting.
We both liked the story of exponential (factorial?) growth in Anno's mysterious multiplying jar [2] (damn, I have to comb through the rest of those suggestions on that page)
My goal is mostly to puzzle and entertain so if you have anything you have used, I'd like to know :)
[1] http://www.msri.org/people/staff/levy/files/MCL/Zvonkin.pdf [2] https://www.mathsthroughstories.org/annos-mysterious-multiplying-jar.html [3] http://bedtimemath.org/bedtime-math-a-fun-excuse-to-stay-up-late/ <comment><AUTHOR> When my daughter was young, she played Sudoku a lot. It's good for reasoning an it's fun. It's important to use the "no guessing" rule, she only could write what she was sure (what she can prove :) ). Later, when she understand the difference between a deduction and a guess, she could solve the more difficult version that need some local guess.

She played the 6x6 and the 9x9 versions. Once, I noticed that she was applying the (informal) rules to deduct the numbers in the "wrong" order in the 6x6 version. After playing a few 6x6 games myself, I (re)discover that some rules are more useful in the 6x6 version and other rules are more useful in the 9x9 version. So the best order to apply the deduction rules is different and she was right.

</comment><comment> jerome-jh I have daughters 6 and 8 years old. When talking about math with them, it mostly revolves around arithmetic calculus. But then there are plenty of tricks that can be learnt by doing calculations in ones head. Maybe it is not very fashionable these days, but calculating in ones head certainly is a good training and is often a disguised way of doing factoring/expanding.</comment>


"Just a few weeks ago, 50-pound bags of flour cost about $15. Today, they're $40." -- The Problem With Ethanol - <AUTHOR> http://abcnews.go.com/WN/story?id=4318523

<comment><USER2> for every 1 cal of food energy produced in US, 10 cal from oil energy is used for its production.</comment>


Christmas gift: 2500 free visitors for Visual Website Optimizer account - <AUTHOR> http://visualwebsiteoptimizer.com/split-testing-blog/merry-christmas-and-happy-new-year-2011-shh-free-gift-inside/

<comment><USER2> Thank you very much - I think this is a great promotion for you and your customers. No better way to get new users then a free trial.

A little feedback on the presentation - this is strictly IMHO. I started reading the features and was presented with statements like "super-sexy interface" and "Finally, a tool that magically converts visitors into customers" - a little pretentious perhaps. Personally when i read things like calling your own interface super-sexy and magical a tech savvy person like myself may be turned off thinking this tool is for non-tech oriented (that's the message your marketing is sending me by telling people it's magical).

On the main page where you list the features you have a quick 2 minute intro which is fantastic (wish more people did that). One thing that might be improved on is integrating some type of case-study. When i sell software i want to sell a solution, not a tool. Focus part of the features presentation around a case study so at a glance someone like myself can watch the video, see the problem presented and quickly understand how it worked for someone else and how it can work for me too.

<comment><AUTHOR> Thanks so much for your feedback.

We do have some case studies on the site <http://visualwebsiteoptimizer.com/case-studies.php> \-- did you mean you wanted to see such case studies?

<comment><USER2> I did see the case studies - that was nice. Just suggesting that you integrate a case study into part of the product tour presentation as I think it could help bridge the disconnect between tool and solution to a problem. For me, it's easier to understand not just what a tool does but how it will solve a problem for me. I understand features more when I see practical applications.

<comment><AUTHOR> I see. Yes, right now product tour demonstrates the features but putting in an actual case study can really drive home the point of A/B testing. Thanks for this feedback.

</comment></comment></comment></comment><comment><USER3> Thanks Paras,

I always like to see startups getting into CRO, and it's very generous of you to make it easier for some to try it out :)

</comment><comment><AUTHOR> We also designed (or, hacked together) this login page with (JavaScript) snow: <http://app.visualwebsiteoptimizer.com/login.php>

Christmas times are fun!

<comment><USER4> Not sure I'd count adding one line to your site as "designed" _or_ "hacked together".

      <script src="js/snowstorm.js"></script>

Maybe if you'd written that JS yourselves..

pre-emptive edit: Maybe it's worth pointing out that I'm not saying you shouldn't have used that script, or that you ought to have written it yourself - just that you shouldn't claim you "hacked [it] together".

<comment><USER5> I may be missing something, as it seems at least I can't get a look at the actual javascript file, but is there some reason you believe they didn't write snowstorm.js?

<comment><USER4> As it happens I recognised the effect without needing to see the code, but had that not been the case, the JS file begins:

      /** @license
       * DHTML Snowstorm! JavaScript-based Snow for web pages
       * </comment></comment></comment></comment><comment></comment><comment></comment><comment></comment><comment></comment><comment></comment><comment></comment><comment></comment><comment></comment><comment>--
       * Version 1.41.20101113 (Previous rev: 1.4.20091115)
       * Copyright (c) 2007, Scott Schiller. All rights reserved.
       * Code provided under the BSD License:
       * http://schillmania.com/projects/snowstorm/license.txt
       */

</comment><comment><USER6> Kudos for making it so easy to enroll in the promotion :)</comment>


Ask HN: Good resources for learning about startup business model development - <AUTHOR> Hey folks,
does anyone know of good writeups/books/blogs etc that would discuss how to approach developing a business model for a tech product? I'm interested in generic resources, but also in any particular advice that discusses business models for niche search services (visual search engines). Thank you! <comment><USER2> Steve Blank talks a lot about true start up business models, and he has all kinds of content out there:

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

Here's his blog section on business models:

[https://steveblank.com/category/business-model-versus- busine...](https://steveblank.com/category/business-model-versus-business- plan/)

<comment><AUTHOR> Thank you! I will give that a read!

</comment></comment><comment><USER3> Ycombinator also has a lot of good resources

[https://www.ycombinator.com/library](https://www.ycombinator.com/library)</comment>


Snowpack: Build a web application without a bundler - <AUTHOR> https://www.snowpack.dev/ <comment><USER2> Although I've contributed to some React projects, the last time I had to do user-facing web frontend stuff was with the original Angular. Looking at this, I'm really glad I don't do frontend anymore.

I've touched some vue.js too, but I just hate the direction everything is going. These projects are just insanely complex. Component frameworks may be easier to develop with, but they add so much damn bloat and crazy amounts of tooling. I get frustrated enough with Jekyll and that's just a static content generator.

I really miss the simplicity of plain old jQuery and some backend.

<comment><USER3> Frontend over-complexity is exactly the problem that this is trying to solve for! You can think of this as a simple post-install tool that removes a huge chunk of the complexity (bundling) from your stack, without limiting what you can build.

If this direction of simplified web development is something you're interested in, you'll enjoy this post I wrote back when we started this project (and it was called @pika/web): "A Future Without Webpack" \- [https://www.pika.dev/blog/pika-web-a-future-without- webpack/](https://www.pika.dev/blog/pika-web-a-future-without-webpack/)

 _Disclaimer: I created Snowpack & Pika (pika.dev)._

<comment> core-questions Adding more tools to abstract and hide away the complexity doesn't actually make the complexity go away, though, does it? It doesn't make it easier to reason about the end result. Just hides it under a veneer.

I think what the guy you're responding to is after is similar to what I'd like to see: a front end that isn't composed of 20 years of hacks layered on top of each other because of poor initial choices.

<comment><USER3> That's whats so cool about this: Unlike Create React App or other "starter apps" that try to hide complexity from you, Snowpack actually removes that complexity entirely. If you didn't want to use a single other tool, you could use Snowpack to build a fully modern web app by shipping your source code directly to the browser (cue the "View Source" nostalgia :)

Luke Jacksonn is someone who's done some interesting work in this space with zero-build-tooling sites: [https://perf.link](https://perf.link) \- [https://github.com/lukejacksonn/perflink](https://github.com/lukejacksonn/perflink)

[https://www.pika.dev](https://www.pika.dev) is built with Babel and TypeScript, so it's not technically "zero-tooling", but we still get almost instant iteration by skipping a "bundle" step during development.

<comment> core-questions Even TypeScript having to compile down to JS for the browser just feels fundamentally wrong. Why write something in some new, domain-specific language that compiles down to an inferior language to run in the browser?

Hopefully with WASM we see the rise of client-side frameworks that bypass all of this bullshit entirely and give us a clean slate to develop on that picks up the best of the 90s low-code projects and makes them cloudworthy. There's no reason why 99% of the UI that most sites need isn't just assembled from a nice list of stock UI widgets.

Disclaimer, am old and miss 90s desktop apps

<comment><USER4> Gotta nitpick here.

JS _is_ the native language for browsers. Therefore, it's reasonable to target it.

While it's entirely possible to compile your language interpreter of choice to WASM and run that in a browser, you're now in sort of the reverse position that folks complain about with Electron: adding tons of extra bloat, overhead, and complexity, just to duplicate some other runtime environment into a place it wasn't particularly intended to be used in the first place.

In addition, with most "compile other language to WASM" demos I've seen so far, they end up just drawing things on canvas, thus losing all the accessibility aspects that are built into the DOM already. (Yes, I know WASM has some DOM interop abilities and more coming, but that's not generally what I'm seeing done atm.)

What's _really_ needed is way better UI elements built directly into HTML, but those are sadly lacking.

<comment><USER5> Now that web components are maturing, is there any working group that is chartered to improve the standard HTML UI compnent library?

<comment><USER4> There's been some discussion of making things like a virtual scroller available under an "std" global namespace [0], and the Chrome/Edge teams recently did a refresh of just the visual appearance of the standard built-in HTML inputs [1] (which, frankly, I think look even worse now).

Beyond that, nothing meaningful is happening. Even the input types defined as part of the HTML5 spec are still barely supported [2], and if browsers can't manage to implement decent date/time/range/color inputs, there's no way of getting more complex components designed and standardized.

Of course, the other aspect of that is, anything that is part of the web API is there forever, which means bugs and mistakes aren't really fixable. So, there's some benefits to having a purely community-driven ecosystem instead.

[0] [https://github.com/WICG/virtual- scroller](https://github.com/WICG/virtual-scroller)

[1] [https://blogs.windows.com/msedgedev/2019/10/15/form- controls...](https://blogs.windows.com/msedgedev/2019/10/15/form-controls- microsoft-edge-chromium/)

[2] [https://www.smashingmagazine.com/2019/01/html5-input- types/](https://www.smashingmagazine.com/2019/01/html5-input-types/)

<comment><USER5> What framework-agnostic HTML UI component library would you recommend? Most of the options I have seen either have framework-specific dependencies (React, Polymer, Aurelia, Angular, Vue) or are just low-level frameworks for building your own UI/web components.

<comment><USER6> Any UI library based on web components is your best bet for a 'framework-less' solution. Some more popular ones are:

\- Material Design Web Components, [https://github.com/material- components/material-components-w...](https://github.com/material- components/material-components-web-components)

\- Vaadin, [https://vaadin.com/components](https://vaadin.com/components)

\- UI5, [https://sap.github.io/ui5-webcomponents/](https://sap.github.io/ui5-webcomponents/)

</comment></comment></comment></comment></comment></comment></comment></comment></comment></comment><comment><USER7> Seriously, people in this thread should really stop complaining about 'complexity' in the web space if they really haven't written & maintained a jQuery application. Most of JS tooling stems from 1. different browsers and 2. (the once) nonexistent module system. Until very recently, 2 didn't have any solutions (so Browserify, Webpack, Parcel, and various different bundlers exist) and 1 still doesn't (and so Babel exists).

These tools aren't the simplest things, but so is everything, everywhere. Complexity needs to exist somewhere, and using an abstraction to hide them is something natural. Do people think we shouldn't use compilers because we 'can' write binary ELF files directly? Same goes to JS.

<comment><USER8> I disagree. I spend most of my time at work in an Angular app and it sucks. The compile times suck, the developer experience sucks and it's not getting better, it's only getting worse. I had a chance to do some side work and decided against building a SPA. I wound up using ASP.NET Core Razor Pages (templated pages) and it's been a breath of fresh air - I haven't enjoyed myself this much writing web software in ages because I can get stuff done in very short order. If I need some more complex interactivity then I might sprinkle in something lightweight but I expect that to be the exception not the rule.

Death to complexity on the frontend for complexity's sake.

<comment><USER7> > I spend most of my time at work in an Angular app and it sucks. The compile > times suck, the developer experience sucks and it's not getting better, it's > only getting worse.

> I wound up using ASP.NET Core Razor Pages (templated pages) and it's been a > breath of fresh air - I haven't enjoyed myself this much writing web > software in ages because I can get stuff done in very short order.

Okay, so I've never worked in Angular, so I can't really speak (maybe there are Angular killer features that justifies using Angular?), but... If it looks like it'll be simpler in ASP.NET pages, go for it!

Everybody likes lighter pages, if your app is simple * doesn't need to be a heavy Angular SPA, you shouldn't be using them.

<comment><USER8> Most apps are simple, no I'm not talking about Facebook. The problem is templated pages apps are not considered sexy, so we build SPAs so we can look good (and pad the resume,) to the detriment of productivity.

<comment><USER9> At my day job, the meme that won and now dominate is "the percieved performance of a SPA is greater than that of a non-SPA". My calls for making our backend more performant are ignored (and probably ridiculed, because of how out-of-the-loop I seem). React for the win!

I hardly belong anywhere, it sometimes seems.

</comment></comment></comment></comment></comment><comment><USER10> I really enjoyed react when it first came out and there was little fussing with browserify (3-4 years ago).

But now this tooling is out of hand. I threw up my hands and found sanity again in simplicity (my username namesake).

      * Django
      * jquery
      * intercoolerjs (https://intercoolerjs.org)
      * plain old docker

It is like war-games. The only winning move is not to play.

Now I deploy apps with no more than 100 lines of JS.

Again, not prescriptive, just my own journey.

<comment><USER11> If you're a fan of this type of libs, you should also check out [https://stimulusjs.org/](https://stimulusjs.org/) and [https://umbrellajs.com/](https://umbrellajs.com/).

<comment><USER12> These both look cool. I've learned some Vue in the past but I strongly prefer these kinds of small, self contained libraries for my Flask + PicnicCSS + very simple JS apps.

<comment><USER5> I mentioned this library in a previous comment, but LiteDOM might be interesting to you as it is somewhat similar to Vue:

[https://litedom.js.org/](https://litedom.js.org/)

</comment></comment></comment></comment><comment><USER13> > Who Should Avoid Snowpack?

> \- Anyone who loves tooling-heavy development! This isn't sarcastic, I > promise! By dropping the bundler, you can't do the magic that Webpack is > famous for. Using import to load CSS, Images, and other non-JS resources is > non-standard and unsupported in the browser (for now). You may appreciate a > dev environment that is true to what standard JavaScript browsers support. > Or, you may find this annoying.

\---

I like that they make this a point, and I'm very much in the "let's not overload the standards" camp so I appreciate this as a feature, not a bug. This convinces me to give this tool a go!

</comment><comment><USER14> The top comments are all about the complexity of front ends nowadays and X and Y comparison.

But they're missing the point, this is a really good idea.

<comment><USER15> Consider the series of bad decisions that allowed such complexity to ooze in the first place. It all eventually boils down to developers putting their needs and concerns ahead of the product/user. I am not convinced this new tool will solve for bad/undisciplined developers.

I used to use _1000 NPM packages_ as a sarcastic example about bad decisions and death by dependency overkill then I installed Angular which pulls in 1100 packages alone. The end user doesn't care about your framework choice, favorite language, tech stack, or build process. They just know your application is slow, clumsy, and riddled with defects.

</comment></comment><comment><USER16> This is really exciting to me. I've been meaning to try and get my head around how to start using ES modules with modern JavaScript stuff but it's tough because pretty much every tutorial assumes you'll be using Webpack. Snowpack looks like it might be the tool I've been missing.

<comment><USER17> I would also check out es-dev-server[1] from the open-wc.org project.

It's basically just a static file server that can automatically rewrite bare module specifiers using Node module resolution. It's the minimal transform you can apply to npm-installed JS modules that import dependencies via package name.

Yes, you get a waterfall of loads during development, but I haven't had this slow things down in practice, and once you get to development you can use Rollup to bundle modules, but unlike Webpack, it can bundle to standard module output.

[1]: [https://www.npmjs.com/package/es-dev- server](https://www.npmjs.com/package/es-dev-server)

</comment></comment><comment><USER18> I've been waiting for something like that for ages.

Really, setting up and fixing js tooling breakage often take more time than actual development for smaller projects

</comment><comment><USER19> I was getting worried we haven't seen a new JS tool for a few minutes.

</comment><comment><USER20> Question for people unhappy about JS tooling: what's stopping you from just using vanilla JS?

<comment><USER21> Not exactly unhappy but why vanilla? By using transpiler and bundler, you get to,

\- Use better JS (TypeScript) to be sent as ES5 (down to IE6 supoort) without waiting for people to upgrade their browsers to the latest, which is forever.

\- Upgrade to latest specified version of libraries without having have to check every site and download the min.js or change the script tag url manually and dependencies are resolved automatically.

\- Get to use stuff like stylus which is already far better than CSS 3 syntax and again, no need to wait for people to upgrade their browsers.

\- Bundle all JS and CSS as a single file (and place all the other assets like images at a specified location automatically), which can be cached for instant load from second page, unless your frontend code is so fat, a single file becomes too huge for it.

\- If your server side is node.js, you get to use a completely same language (TypeScript) for backend and frontend.

</comment></comment><comment><USER22> These guys are vastly exaggerating the time it takes to update a dev environment on save. It's usually ready before you switch back to the browser.

<comment><USER23> For large projects, especially ones with TypeScript, this is definitely not true from my experience. Not sure if this a tool that's suitable for those large projects but just saying that it definitely is a problem that would be nice to solve.

</comment></comment><comment><USER24> I'm hoping some sanity is brought to front-end development. I had a project which legitimately did require a slice of the site to be SPA. I didn't do the full site, just the piece that needed it. When I looked at using React I was confused that it seemingly didn't want me to actually write HTML. Maybe I misread something, but it seemed like it wanted me to return HTML from JavaScript...this made little sense to me. I ended up using VueJS because it was far easier to learn. It did the job.

Webpack certainly is confusing too. I did a side project with some webpack and es6 stuff. It was kinda fun, but man, front-end development has sucked forever. I remember back in the day having to fight with IE6. Here we are, thirteen fucking years later and shit seems to have gotten only MORE complex.

I look at server-side programming for comparison. PHP for instance certainly is more complex with some of the frameworks you can use now and of course composer. But those are WAY simpler than the shit I had to deal with when coding the front. I just don't understand how things have gotten more complex on the front-end, brutal.

It got me thinking about playing around with WebAssembly for building front- end applications. Maybe that doesn't fit all use-cases and maybe the grass is always greener, but I wonder if programming in sane ecosystem would be the sane thing to do...?

Put me in the camp that if there isn't a use-case slapping me in the face, choking me, and yelling at me to do a SPA then I'll avoid the shit like a plague. I'll just go with server-side render pages and sprinkle in some very basic jQuery as needed. I actually did that for a CRM two years ago and the thing is so damn simple to program in, because JavaScript is only used if it ACTUALLY provides a benefit to the user. There is a site-wide script that is maybe 100 lines of code. Then some page-specific things that load in stuff using RequireJS, but the most complex JS out of those is maybe 300 lines. The vast majority of the site doesn't really use much JavaScript. Just plain old MVC.

As always, please BURN YOUR JAVASCRIPT STICKERS.

</comment><comment><USER25> I think this is cool, but it's hard to do any development in the current ecosystem without a lot of the magic of webpack.

I can't count the number of times the solution to a problem we had was described as 'just add these lines of magic to your webpack config'.

</comment><comment><USER26> This project looks like [http://vanilla-js.com/](http://vanilla-js.com/) to me. It's already possible to load modules without any library with <script type="module"...

<comment><USER27> Snowpack looks like it works with any 3rd party module, doesnt it? It looks like vanilla-js is more of a jquery style lib + optional addons?

</comment></comment><comment><USER28> You would definitly need http/2 to use this, I've tried using imports in vanillajs with supported browsers its sloooooooow. I do wonder whether you could leverage server push for this and whether that would help.

</comment><comment><USER29> I do all web development without any bundles, it just adds more complexity and dependencies to the application, too many things that can go wrong, too much bloat, possible security issues, etc.

<comment><USER30> You wasting your time with inventing the wheel again and again?

</comment></comment><comment><USER31> There is an alternative that can do much more and require less effort. Check it out [https://hqjs.org](https://hqjs.org) plus vscode plugin [https://marketplace.visualstudio.com/items?itemName=hqjs.hq-...](https://marketplace.visualstudio.com/items?itemName=hqjs.hq- live-server)

</comment><comment><USER32> Use cases of front end are getting more and more complex so the tools are as well. One could argue that we are trying to do so much with a platform that offers so little by default. Maybe that's the inherent culprit. Don't know. I really prefer frontend dev to backend (when I started it was all the same really), but I have to admit frontend complexity can scale pretty fast.

</comment><comment><USER33> The added value of build tools is that javascript are increasingly the assembly of the web and more of a compilation target than something you deal with natively (using the term loosely here since we are talking extensive interpreter and compiler hacks that are needed to make this interpreted language feel fast-ish).

With web assembly maturing, interacting with this mess is becoming increasingly optional. Also languages like typescript and kotlin that compile to javascript add layers of much needed sanity. IMHO any project not using that is doing it wrong at this point. I'm very aware that this is opinionated and even offensive to some but after 2 decades of "maybe this will fix it" type innovation in the javascript world, I have very little patience left for that. The less I'm exposed to that smelly pile of manure, the better IMHO.

So, my recommendation: avoid this tool and use a sensible compile, verify, test, minify, and package it up style tool chain like all the grown ups do these days. I agree, tools for this are very much a cluster-fuck in terms of complexity, lack of any sane defaults that are actually good enough, usability, and performance but they're better than nothing.

In an ideal world, you'd not have to download hundreds of MB of layers of tools around tools that try to fix and work around each other. But there's no good technical reason to skip using them entirely. There's no sane excuse to skip sanity checks, type checks, static code analysis and running tests (and designing such that you can actually do this in a sane way, which seems to be hard with JS). Skipping that is immature and irresponsible. I don't tolerate it in my own projects and have no patience for self styled full stack js ninjas claiming their code is fine. It's not anywhere near fine.

<comment><USER34> Or use whatever tool is best for the task at hand. No need to overly complicated making a website if you don't need to transpile and combine a bunch of libraries. Even just use jQuery or plain JS with a minimal backend if that's all you need for a simple website.

Also, my guess is JS still predominates as the web language being used by developers, provided that React syntax is included.

</comment></comment><comment><USER35> does anyone have experience using this?

<comment> why-oh-why It was just announced

</comment></comment><comment><USER36> Tbh parceljs does make bundling a lot better to deal with. For example, how would I integrate wasm using this?

</comment><comment><USER37> But this is only for importing JS modules, right?

What about SASS, minification, etc?

<comment><USER31> Try [https://hqjs.org](https://hqjs.org) it takes care of everything like sass, less, typescript and polyfills.

</comment></comment><comment><USER38> What can I do with Snowpack that I can't with a CDN?

<comment><USER39> They seem pretty orthogonal to me. Snowpack is about builds, CDN is about serving. You could serve snowpack built JS dependencies with a CDN.

</comment></comment><comment><USER30> Does it make sense to use it with svelte?

</comment><comment><USER40> The joys of the javascript ecosystem: (1) creating complex solutions for problems no one has or (2) creating complex solutions to fix the problem of complex solutions that didn't need to exist in the first place

It is an endless loop.

The first dot-com bubble resource wastefulness was spending so much money on networking gear. Every one had oversized expensive Cisco gear.

This dot-com bubble resource wastefulness is so many hundreds of thousands of engineering hours devoted to mega super over engineered Javascript solutions.

<comment><USER41> I get framework and tooling fatigue, but it seems misaimed here. This project is an attempt at minimizing complexity, not adding onto it. There's a fundamental problem with writing JS for the browser: how do you expresses your dependencies?

jquery-era code solved this by just putting the dependencies in the README of a project (e.g. "this project requires jQuery and jQuery UI version 3! load them before loading this script!"). It worked, but it was error prone and manual.

More recent code has solved it by writing code that used abstract specifiers, like require('jquery'), which meant that you needed to use a complicated and often hyperconfigurable bundler to run in the browser (because the browser can't go searching the filesystem to figure out where the code for the 'jquery' package is)

With ES modules we're almost there, browsers can import files now, but they still need a bit of additional info to tell them how to resolve underspecified modules like 'jquery' (as opposed to './utils.js' which they can handle with no problem). You can write your code with fully specified imports, but the difficulty is that that code doesn't travel well, e.g. if you write `import '../node_modules/jquery/jquery.js'` that won't work if someone uses your package as a library, because jquery.js will actually be at '../jquery/jquery.js' because your package lives in the node_modules directory.

<comment> core-questions > how do you expresses your dependencies?

because literally just putting them in a folder somehow became insufficient for any number of reasons, some of which seem to have to do with JS's lack of an include() function like every other interpreted language has had since forever

like, how about i don't need 20,000 dependancies, and just use an application stack that includes normal things like trimming a string

<comment><USER42> _> some of which seem to have to do with JS's lack of an include() function_

This has been solved by ES Modules, which is already in all major browsers. Only IE is lagging behind (but there are polyfills).

</comment></comment></comment></comment><comment><USER43> Avoiding the FUD and "this vs. them" on posts like these is nearly impossible. Snowpack is an awesome utility and I'm glad it exits. In fact, Snowpack is a great compliment to Rollup for development - because Rollup <3 ES Modules.

I'm a core contributor on Rollup. Rollup is surging, and we've been seeing a ton of interest and new contributors. We're doing some awesome things to improve it, and if you'd like to help advance ES Modules and tooling, we'd love your help.

<comment><USER43> It would have been great to see some replies from those who downvoted. I'm not sure how that message isn't positive, but it I'd welcome some outside perspective on that.

</comment></comment><comment><USER44> I thought this was going to be an article showing you how to build modern websites without the cancer that is /node_modules/ but it's Yet Another Webpack Killer. Imagine my face as I wince at the JS ecosystem as a whole.

<comment><USER45> This isn't really a webpack competitor, it's the same functionality of webpack (production-ready js builds) but leveraging modern web standards (ESM)

It's almost like comparing jQuery to web components, maybe you can achieve similar things to both, but one is a feature with native browser support.

</comment></comment><comment><USER46> Man you can already build web applications without bundlers! go with sqlite will give you a single binary you just run!

Also if your needs are simple you can just write a cgi script (provided you don't need too many RPS.)

<comment><USER47> I'm not sure what this means… sqlite isn't available to use in any browser. Not to mention, it has nothing to do with JavaScript on the web.

Snowpack is for bundling ES modules to build web applications. Nothing mentioned in your comments works to build a client-side web application. If this your comment was some sly remark, it's totally lost on me.

Also, what's RPS?

<comment><USER48> Technically web SQL is a thing but is depreciated and not supported by FF. OP was talking about sqlite on the server side.</comment></comment></comment>


Netflix lifts limits for movies watched over Web - <AUTHOR> http://today.reuters.com/news/articlenews.aspx?type=internetNews&storyID=2008-01-14T143341Z_01_N14394385_RTRUKOC_0_US-NETFLIX-INTERNET.xml

<comment><USER2> macs are not supported. that's a joke</comment>


Winamp for Android: Now in Beta - <AUTHOR> http://blog.winamp.com/2010/10/20/winamp-for-android-now-in-beta/ <comment><USER2> Warning to those who download it in public or at work, it says "Whipping the Llama's Ass" on speaker when you first run it.

<comment><USER3> It does, like every prior version of WinAmp, IIRC.

<comment><USER2> That's true but there are a lot of people who haven't even heard of WinAmp. Fair warning I think.

<comment><USER4> Someone haven't heard about WinAmp? No way!

</comment></comment></comment></comment><comment><USER5> Okay, now I _have_ to get the HTC Desire HD. Between this, Grooveshark and Swype, I don't think any other OS can compete.

<comment><USER6> It's too bad that Swype persists with their bizarre OEM-licensing-only model. Would love to try it on my N1, but they can't be bothered to provide it to the unwashed masses as a normal purchased download.

<comment><USER5> Oh, really? :/ I thought it was default on all Android devices, I guess it was just the Samsung I saw... Do you know if it's available on HTC as well?

<comment><USER6> Most mainstream manufacturers do seem to put Swype on at least some of their models - HTC, Samsung, Motorola at least.

No doubt this works out nicely for Swype (strictly volume deals is pretty lucrative, I'd imagine), but it really puts me off them as a company - I'd hate to see this kind of model proliferate.

</comment></comment></comment></comment><comment><USER7> I'm one of those people that still uses Winamp 2.9x... this is pretty awesome news for me.

I've never liked any of the other media players available on Android, I'm definitely going to try this out when I get home. I think I'm most excited about the wifi sync.

<comment><USER3> I'm finding it to be very nice, so far. My only complaints are that I wish it did streaming and that the controls were a bit more friendly to those of us with large hands and fingers.

(To be fair, I find the UI simpler than anything else I've tried for the Droid, except maybe MusicQueue, and the controls aren't as tiny as some of the other apps. Smart phones may just be for the smaller-hand set. :/)

</comment></comment><comment><USER8> I was excited for a moment, but then realized it does't include the ability to stream music.

I guess I'll have to stick with di.fm's beta app <http://www.di.fm/apps/android/>

</comment><comment><USER9> WTF? Why isn't there a Winamp for Linux then?? Oh how I miss it.

<comment><USER10> Have you tried Audacious? What are you missing? There are more good & free players for Linux than I could count with my fingers.

<comment><USER11> The best music player I've used so far is FooBar2000 on Windows. I wish there was an exact clone for Linux.

<comment><USER12> As ridiculous as this sounds - this is the only reason that I keep an XP installation on one of my machines at home. I've tried Banshee, Rhythmbox, and AmaroK, but they all just felt clunky coming from F2K.

Based on other comments here, it sounds like I need to give Audacious a shot.

<comment><USER5> Same here, I have a small nettop box with 7 installed just for Winamp and a few other, windows-only programs. I just tried Audacious, however, and it's very good. The only thing I miss is a hotkey for "toggle windowshade mode", but I think I can live without it.</comment></comment></comment></comment></comment>


WordPress 3.9, "Smith" - <AUTHOR> http://www.poststat.us/wordpress-3-9/

<comment><USER2> I don't have words for how obnoxious the little flying "Quote" box that appears when highlighting text is.

<comment><AUTHOR> Thanks for the feedback. I've considered disabling it for a while, though some folks have really enjoyed it.

<comment><USER3> I'm not sure why the parent doesn't like it, but I can explain why I don't like it. I think there's a certain group of users who have developed the habit of highlighting while reading to keep their place in scrolling media. At least, that's why I highlight text a lot. For me, the quote box is annoying, but I can see how it might be useful for people who don't highlight text while reading.

</comment></comment></comment><comment><USER4> If you are unfortunate enough to work on a WordPress plugin, one of the nice features of this release is the ability to symlink plugins.

[http://make.wordpress.org/core/2014/04/14/symlinked- plugins-...](http://make.wordpress.org/core/2014/04/14/symlinked-plugins-in- wordpress-3-9/)

This will make iterating on changes to a plugin much easier.

<comment><USER5> sorry but can someone ELI5? what does symlinking plugins mean actually?

thanks

<comment><USER6> From the link:

 _One of the great advantages to this is that plugin developers can keep their plugin separate from their WordPress installation. This is a boon for developers with multiple installs who want to test compatibility; keep in mind that you can symlink the entire plugins directory if you 're testing multiple!_

Basically, if you're a plugin dev, you no longer have to update your files across multiple local installs; you can simply keep your plugin files in one place, and symlink that plugin to any local install you're testing on.

<comment><USER7> Another alternative to this is to develop in a local multisite install. Not suitable for every scenario, but good enough for 90% of sites in my experience.

</comment></comment></comment></comment><comment><USER8> I LOVE the fact that you can now drag & drop images from your desktop directly the post, skipping the annoying "Add Media" step.

<comment><USER9> Yes, but do you still get the same options you have on add media (title, alt, caption etc)?

I haven't had a chance to try it yet.

<comment><USER10> It gives you all of the same options, as well as the ability to select a different images before inserting.

</comment></comment></comment><comment><USER11> And yet, there still isn't a version that works with Postgres.

</comment><comment><USER12> Cached version: [http://webcache.googleusercontent.com/search?q=cache%3Awww.p...](http://webcache.googleusercontent.com/search?q=cache%3Awww.poststat.us%2Fwordpress-3-9%2F&oq=cache%3Awww.poststat.us%2Fwordpress-3-9%2F&aqs=chrome..69i57j69i58.991j0j4&sourceid=chrome&es_sm=122&ie=UTF-8)

<comment><USER13> Official Wordpress blog: [http://wordpress.org/news/2014/04/smith/](http://wordpress.org/news/2014/04/smith/)

</comment></comment><comment><USER14> Really glad they got rid of paste from Word (even though just a tinyMCE update) I would see people do this and it would look just fine, but it would add each paragraph as its own div sometimes and all other crazy formatting that would mess up the responsiveness of the site.

Love seeing a lot of these other features as well, really excited for 4.0 :)

</comment><comment><USER15> Could anyone point me some stats on wordpress version usage? For developing themes and a plugin, should I simply target and test on the latest version?

<comment><USER6> Here's the stats page on wordpress.org: [http://wordpress.org/about/stats/](http://wordpress.org/about/stats/)

In short, depending on the purpose & features of your plugin, you may want to consider testing on older versions as well. With themes, it shouldn't be too big of an issue to ensure compatibility for a couple of versions back, at least.

Edit: Probably not entirely accurate, see this tweet by a core dev: [https://twitter.com/nacin/status/456516848763146240](https://twitter.com/nacin/status/456516848763146240)

</comment></comment><comment><USER16> 403- forbidden. Is there some unlawful (carnal) knowledge in this release?! :)

</comment><comment><USER17> Was literally listening to "Walk on the Wild Side" when I clicked this.

What are the odds?

<comment><USER17> Why the downvotes? Anyone have a clue?

<comment><USER3> In general, I believe comments such as this are downvoted on HN because they are interpreted as adding little or no value to the conversation while attempting to shift focus away from the topic at hand. I'm not saying that was your intention, but it might be perceived that way by people with the power to downvote (a power I don't have or care about much). This kind of policing is generally done here with the intention of keeping the site from turning into just another subreddit.

<comment><USER18> I'm not disagreeing with you, but there's very little consistency in this behaviour. The large amount of bikeshedding over trivial matters (a project name, a license version, etc...) shows people share their opinion regardless of whether it adds depth or is strictly relevant to the conversation.</comment></comment></comment></comment>