Proof of work algorithm in Monero based on random code execution - <AUTHOR> https://github.com/tevador/RandomX <comment><USER5> I did an analysis of this PoW at my line of work and I would say that it is really complicated. Unnecessarily so, I have to add.

I also have a comment about ASIC resistance.

There are tools that allow to customize hardware upon programs it will execute, [1] is an example of one such tool, there are some others.

[1] [http://openasip.org/tta.html](http://openasip.org/tta.html)

If you write a RandomX code generator and interpreter and customize the CPU hardware using tools like one above you will get an optimized version of the hardware. Take a look at [2] for a results of such codesign attempts for Fourier transform. The optimization in energy efficiency can be as high as 100+ times over general purpose processors and on par and exceeding ASIC implementation.

[2] [https://www.researchgate.net/publication/321700396_Codesign_...](https://www.researchgate.net/publication/321700396_Codesign_case_study_on_transport- triggered_architectures)

One would duly note that RandomX employs floating point instructions in some parts of hashing process. I will respond that floating point operations can be expressed as operations on fixed point values and these hardware parts can (and will) be shared with other computations. Basically, the codesign tool will implement for you a split (FP)ALU. This will also increase energy efficiency over GPU and general purpose CPUs which have different paths for FP and integer computations and usually do not share ALU parts between these.

To comclude, first, RandomX is needlessly complicated. Second, I think that ASIC version can be attained without writing everything in Verilog by hand, you may stick with C reference implementation for most of the work. And, last but not least, the gain in hashes per joule from ASIC implementation can be much higher than 2-5 times over CPU or GPU.

<comment><USER6> Comparing an FFT ASIC to a random code "ASIC" is.... well, just wrong.

<comment><USER7> Yep. His comment completely misses the point, and everything he mentions about codesign tools is irrelevant.

</comment></comment></comment><comment><USER8> This PoW is rather complex and takes nontrivial amounts of time and memory to verify. It accepts these downsides in an attempt to achieve "ASIC resistance", which means limiting the potential efficiency gains of custom chips to a small factor like 2x or 3x. This should make their design and manufacture economically unattractive, with long ROI times. And thus allow commodity hardware to remain competitive.

<comment><USER9> > And thus allow commodity hardware to remain competitive. This would make the > system more robust, at the expense of increasing the power consumption. Is > that correct? Doesn't seem really eco-friendly.

<comment><USER10> Everything about proof-of-work systems is not eco-friendly, and involves burning power 24/7, up to as much power as the produced cryptocurrency is worth. This seems perverse in a world where we're trying to cut down on energy use in almost every other area.

(no doubt someone will be along in a minute to tell me that cryptocurrency mining somehow uses "spare" electricity and burning the same amount of power as a mid-sized country isn't actually a problem at all!)

<comment><USER11> Nope! The[0] blockchain necessarily has use on the order of half the (non- dedicated) power generation capability it's host civilization in order to achieve proper security; otherwise the other half of said power could used to mount a 51% attack. It's less in practice, both because it's not worth that much to attack, and because it's not fully secure, but in theory, a Kardashev 3 civilization would need a Kardashev 2.97 or so energy expenditure to secure it's blockchain.

0: and it _is_ a definite article, like the internet. There by definition can't be more than one at any given time.

<comment><USER12> PoW doesn't run on "power" in general, but on electricity. It can be trivial to convert some forms of power into electricity, but not all. One particular form of power which could seen as "wasteful" is that of burning fuels to create heat. A mining chip is a 100% efficient electricity to heat converter. If the cost of useful mining chips could become small enough, it would never make sense to use a traditional burner for heating a space, but using mining equipment would be preferable because you could recover some of the cost of the energy used to heat the space in potential mining rewards.

This is the goal we should aim for: As we're approaching the upper limit of Moore's Law, mining equipment will have a much longer lifetime and focus on reducing the cost of production could turn households and other buildings into data furnaces. It may not even be necessary for mining to be profitable - <USER2> long as there is there is a large enough ROI for users of such data furnace to cover its initial cost and eventually reduce their heating bill.

> 0: and it is a definite article, like the internet. There by definition > can't be more than one at any given time.

Technically multiple chains can and do exist at any time because there is no "given time" \- time is relative. Two miners at two ends of the earth may both produce a valid block at a given time (say, in UTC), but the nodes in proximity to them will receive their blocks at different times, due to distance and the fundamental speed limit of information transmission. The multiple chain conflict lasts until the next block is produced. Such conflicts could last for multiple blocks in a row, but with a probability which rapidly declines with number of blocks.

<comment><USER11> > Two miners at two ends of the earth may both produce a valid block at a > given time

Er, no, I mean you can't have more than one (distinct) live blockchain _standard_ ; eg if you have Bitcoin and Litecoin, one of them must be using less than 50% of the available hashing capacity (because otherwise it would add up to >100%), and therefore not be secure[0].

Good point about some power use having beneficial side effects (heating) in addition to the actual work though.

0: because if it ever actually needed the security - was more valuable to attack than the majority chain - then the miners on the majority chain would have a economic incentive to attack the minority chain and gain more from attacking than they lost from undefended attacks on the majority chain.

Obviously it's possible to have two blockchains in practice, just like it's possible to have two internets in practice, but there's a constant pressure to drain applications from the minority (quasi-)singleton into the majority singleton until the minority goes defunct from lack of use.

<comment><USER13> This seems empirically false as for example Bitcoin Cash is gaining more applications and usage compared to Bitcoin to a larger degree than it's 3% hashrate would suggest.

There have even been reorg attempts that have been defended by miners that support the minority chain, making it a bit more difficult to determine how secure a chain really is.

</comment></comment></comment></comment></comment></comment></comment><comment><USER14> We should reject PoW algorithms as generally destructive. When I say destructive, I mean they cause more global harm than they purport to alleviate.

PoW should have been set aside as soon as it was generally understood that the network's energy consumption might be unbounded.

<comment><USER12> > We should reject

Who is "we"?

You can't "set aside" something which a free market has chosen to accept. If you're upset about PoW, invent a superior replacement which the market would prefer over PoW.

However, I suspect you cannot. I'm doubtful that such thing can exist. Bitcoin is now an essential commodity because there is no replacement for it when it comes to saving money or evading warrantless (illegal) surveillance. The central banks and governments around the world caused this, and they aren't capable of reversing it.

<comment><USER15> > Who is "we"?

Presumably society.

> You can't "set aside" something which a free market has chosen to accept.

We have set aside CFCs even though they were accepted by the free market. They were harmful to the environment, creating the ozone hole.

Similarly, PoW mining has an enormous and well-documented ecological cost.

> If you're upset about PoW, invent a superior replacement which the market > would prefer over PoW. > However, I suspect you cannot. I'm doubtful that > such thing can exist.

PoS exist.

> Bitcoin is now an essential commodity because there is no replacement for it > when it comes to saving money or evading warrantless (illegal) surveillance.

All transactions and account balances in Bitcoin are public. From meta data and corresponding networks one can figure out where and who the people are (NSA does this too). It is not very private at all.

> The central banks and governments around the world caused this, and they > aren't capable of reversing it.

I doubt that it is a essential commodity and suspect you are overestimating the economic importance of Bitcoin.

<comment><USER12> > Presumably society.

Which society?

> We have set aside CFCs even though they were accepted by the free market. > They were harmful to the environment, creating the ozone hole.

Some regulations can be enforced. It's going to be a different story attempting to regulate something which can be hidden trivially with encryption, has no physical presence, and can be stored in ones head to prevent seizure.

> All transactions and account balances in Bitcoin are public. From meta data > and corresponding networks one can figure out where and who the people are > (NSA does this too). It is not very private at all.

This is true for plain use of Bitcoin, but there are ways of evading chain analysis, and you can also swap out your Bitcoin for Monero for spending.

> I doubt that it is a essential commodity and suspect you are overestimating > the economic importance of Bitcoin.

It may not be essential to you, but there are plenty who consider it so, and these will only grow as people further distrust their governments and central banks.

<comment><USER10> > It's going to be a different story attempting to regulate something which > can be hidden trivially with encryption

Regulate on/off ramps. Watch it wither on the vine. Job done.

<comment><USER12> How does regulation work for illegal drugs, prostitution, or other black markets, which can overall amount to double-digit percentages of economies?

Bitcoin only needs the black market to be a huge success. If it can avoid any surveillance ramps, that is ideal. It doesn't need to be everywhere.

IMO, the surveillance on/off ramps are going to have a hard problem ahead of them, of their own making. Black markets are only going to accept "cleaned" bitcoins because they won't put themselves at risk of being surveilled. The "cleaned" bitcoins will not be usable on AML exchanges. The "unclean" bitcoin can be cleaned through CoinJoins and such, at the risk of whoever obtained them in their unclean state, but once cleaned, they'll be back on the black markets.

Trading fiat currencies for Bitcoin will happen mainly in person, with cash, to avoid the surveillance.

You will be able to tell, to an extent, whether bitcoin are clean or unclean through their transaction history - a clean coin will be one which originates as the output of a CoinJoin. All transactions on the black markets will be a CoinJoin of some kind.

For most purposes, this won't matter because the majority of trade will be conducted over the Lightning Network, which has sender anonymity, and will very likely get receiver anonymity in the near future. Node operators can use Tor to avoid being surveilled - and the transport protocol used is fully end- to-end encrypted and authenticated.

Since the majority of trade will be happening on the black markets, exchanges which built their castles in KYC land will eventually fail. Nobody will care for "unclean" bitcoin if they are too heavily regulated. There will probably be a premium on clean bitcoin due to the risk involved in anybody who decides to wash unclean bitcoin.

Savers will not care if they have to resort to black markets to protect their wealth from theft or seizure. As long as they can find some local black market vendors who'll trade them for some other goods or fiat cash.

For governments to attempt to stamp out the black markets, the solution involved will be much worse than anything you could imagine being caused by Bitcoin - complete totalitarianism is the only way it could be enforced, and your open internet will be finished long before then. Careful what you wish for.

<comment><USER10> > How does regulation work for illegal drugs, prostitution, or other black > markets, which can overall amount to double-digit percentages of economies?

Very few people want bitcoin for itself, most are in it purely to get rich through speculation, and even those who use it to transact will find it less attractive if it can't easily be converted.

Your Heath-Robinson process of money laundering there is hilarious, and reads like a how-to for lengthy jail terms.

<comment><USER12> > Very few people want bitcoin for itself, most are in it purely to get rich > through speculation, and even those who use it to transact will find it less > attractive if it can't easily be converted.

From an outside perspective, it might seem that way. There is a plentiful, and growing crowd who understand Bitcoin as a means of saving and avoiding state interference in their finances. Conversion of fiat to Bitcoin is highly desirable because people want to save over long periods. The conversion of Bitcoin back to Fiat is less desirable because it is trading good money for bad money. People only do the latter when they have a liquidity crisis. The bulk of bitcoin users are HODLers, as can be seen through the UTXO ages on the blockchain. Market speculators are a minor subset of bitcoiners.

> Your Heath-Robinson process of money laundering there is hilarious, and > reads like a how-to for lengthy jail terms.

I wasn't talking about money laundering at all. What are you reading? Not sure you know what money laundering means. I'm referring to people taking their legitimate earnings and storing them in Bitcoin for the purpose of avoiding devaulation by inflation and illegal surveillance without warrant.

People pay their income taxes when they earn (Usually with no choice because it will be deducted fromn their wage via a PAYE scheme). They also pay their sales taxes when the purchase any items from outside of the black markets. The Bitcoin saver who merely interacts with this black market as a means of exchanging fiat money for bitcoin is not engaging in illegal activity. It is the black market vendors who provide the services who are.

Consider this: You go to a shop and purchase an item which costs $0.99 (inc. sales tax). The owner of that shop decides to pocket the sales tax and does not pass it on to the tax authority. Have you engaged in illegal activity by purchasing this item? It has nothing to do with you whether the shop owner pays his sales tax - you paid yours.

Ok, it might be possible to dodge sales taxes by purchasing within black markets, but the black market doesn't necessarily provide all the commodities one would want. The most common use case will be converting back to fiat cash to use at local stores, where every purchase has a sales tax.

If money laundering is a concern, then a government would really want to deregulate bitcoin and encourage its use in paying taxes. By utilizing the blockchain and its auditability, they could largely automate the process of tax collection and save significant amounts of money. People will still be paying their income taxes via PAYE, but the process can be fully automated by every participant involved (employer, employee and tax authority).

By attempting to overregulate, they push most of the activity underground, where they are no longer collecting sales taxes on the transactions.

<comment><USER10> > I wasn't talking about money laundering at all.

All that stuff about clean coins, joins and mixers. Money laundering.

> The bulk of bitcoin users are HODLers

Who are doing so because they expect the price in fiat to go up, so regulating on/off ramps would likely kill that.

<comment><USER12> > All that stuff about clean coins, joins and mixers. Money laundering.

The use of a CoinJoin does not imply money laundering. Launderers can and do use these tools. Merely using the tool does not make you a launderer. If you are suspected of laundering, you can prove your money movements to a law enforcement body which offers a warrant to search them. This is how things should be. Innocent until proven guilty.

CoinJoins are necessary to evade _warrantless_ surveillance, because transactions on the blockchain can be linked to your person when the state obtains parts of that information from KYC exchanges. Since you have a right to secure against unreasonable searches, you have a right to thwart these efforts to illegally monitor your financial activity.

> Who are doing so because they expect the price in fiat to go up, so > regulating on/off ramps would likely kill that.

They expect the price to go up because they understand the subjective value of commodities, Gresham's law, and human self-interest. It has nothing to do with regulation. Bitcoin will grow with or without state involvement because it solves real problems that governments and others have created. More people are becoming aware of this, and Bitcoin has propelled some of the issues into the spotlight. The role of the state could slow down or accelerate Bitcoin adoption, but it cannot stop the inevitable - particularly when their own policy of infinite inflation is the major driver of Bitcoin adoption.

As said above, a government would be unwise to attempt to push the activity underground, where they can no longer monitor and collect taxes on it. If the regulatory burden on exchanges ends up making it more difficult for me to obtain bitcoin through a KYC exchange than via the black market, then I will end up doing the latter, and by doing the latter, I might then potentially increase my interaction with the black market (reduced sales tax), hide my earnings (less income tax), hide my profits (less capital gains tax), hide my wealth (bye bye inheritance tax). Isn't going well for the government, who will see a reduced tax income.

The government just wants people to pay taxes. It shouldn't really care much about whether people are using dollars or bitcoin - only that Bitcoin can potentially make it easier for people to dodge tax. The best option for a government is to make it easier to use bitcoin for legitimate services than the black market so as to discourage black market involvement.

A government should be working on ways for it to utilize Bitcoin for the purpose of tax collection, and then encourage its widespread use in retail and in PAYE, such that it can have an almost live view of the economy and can see who is paying their taxes. Any delays in mobilizing such systems will ensure that superior, more privacy preserving systems will instead be adopted, and will give limited benefits to the government.

<comment><USER10> > The use of a CoinJoin does not imply money laundering.

Cleaning coins and obscuring their origins between black market and AML compliant exchanges does though. You described a great way to get jail time.

> you have a right to thwart these efforts to illegally monitor your financial > activity.

Good luck with that, but it seems that you actually don't, nearly every country now has a variety of monetary controls and monitors flows of cash with a warrant or otherwise. Merely disguising money flows is often enough to get you investigated. See also things like "structuring", a crime involving moving money in such a way as to avoid checks, which is illegal even if no other crime is committed.

The rest of your post is just more nonsense. If people found they couldn't exchange cryptocurrencies for fiat, HODL would be a thing of the past, and black market uses would also drop because people don't want bitcoin for itself. BTC is dead without conversion being available.

<comment><USER12> There is nothing illegal about keeping your own money private, and requiring that a lawful warrant be issued for you to reveal your full financial activity. The warrant must also be issued with probable cause. It's questionable whether merely using a CoinJoin is probable cause - and given how prolific CoinJoins will be for perfectly legal uses, I can see many magistrates requiring more than just a CoinJoin to issue warrants. Different jurisdictions may have a different opinion, and will see their economies suffer as a result.

In the USA, you are protected from government overreach of your possessions by the fourth amendment. Some places have already declared bitcoin to be property.

> The rest of your post is just more nonsense. If people found they couldn't > exchange cryptocurrencies for fiat, HODL would be a thing of the past, and > black market uses would also drop because people don't want bitcoin for > itself. BTC is dead without conversion being available.

If you have no background in Austrian economics it may sound like nonsense. Mainstream economics thinks that economies are influenced top-down. The outside perspective ignores that the majority of hodlers have a very low time preference and treat Bitcoin as a long term saving, perhaps even a pension strategy. No early adopters ever expected Bitcoin to grow as rapidly as it did, but many held on anyway. They don't intend to convert back to fiat because they have a firm belief that they won't need to - enough people will desire Bitcoin in the long run that they won't have much trouble acquiring services or goods in exchange for Bitcoin in future, and their purchasing power may be increased too. (So far, has increased beyond their wildest imagination, before governments have even decided what they want to classify it as. Regulation never had anything to do with it.)

Your belief that Bitcoiners can't wait to convert back to dollars is absurd. If you take a look at the value of a dollar relative to Bitcoin[1], then it's quite clear that HODLers aren't merely investing in bitcoin, they're divesting in dollars. Bitcoin is the escape route from a failing fiat system, and some are just ahead of the curve.

While there is a market for exchange, the market will be filled, whether it is KYC exchanges or black markets. People will mostly chose the one which is cheapest, which is currently the KYC exchanges. Increased red tape will increase the costs of exchange, and the black market will fill the gap.

[1]:[https://i.imgur.com/GgPNbyx.png](https://i.imgur.com/GgPNbyx.png)

<comment><USER10> In the USA you are under _constant_ financial scrutiny, and yes, subject to enforcement on things like structuring. You're a fool if you think otherwise

I am familiar with Austrian economics. It's widely regarded as bullshit, and its adherents generally immature financial larpers with bizarre, extreme views like "inflation is theft".

</comment></comment></comment></comment></comment></comment></comment></comment></comment></comment></comment></comment></comment><comment><USER16> Someone should make a PoW algorithm based on useful things like game theory; for example a chess bot competing against other chess bots, the top winner forges the block and gets the rewards. This is still not extremely useful, but better than just hashing useless strings.

Ideally, PoW algorithms should be focused on real science and/or economic problems.

<comment><USER17> There is already a PoW that helps with protein folding.

As for "should" - you may not be aware of this, but telling someone they "should" do something if you don't plan to help is a bit offensive.

<comment><USER16> >> but telling someone they "should" do something if you don't plan to help is a bit offensive.

I disagree with this very strongly. How is sharing good ideas offensive?

Even if some people already knew about this, not everyone did and sharing these ideas could only help society.

That would be like telling Elon Musk to shut up when he came up with the idea for the Hyperloop but didn't implement himself... Elon just didn't have the time.

I'm no Elon but I also don't have the time because I'm working on a DEX which I think is a better use of my skills. The fact that I'm no Elon gives me even more incentive to share my ideas.

I don't have many followers, so if I implement my idea, nobody will use it (no matter how good it is); I won't be able to generate enough hype. On the other hand, if some rich person from HN sees my idea and implements it, then it will be more likely to succeed (just because of network effects). I can contribute more to society by giving my idea to someone else than implementing it myself.

You severely underestimate the power of network effects and capital.

I don't have much capital so even the best ideas in my own hands are essentially worthless. If I implement it, even if it's very good and the best of its kind, I guarantee almost 100% that nobody will be interested in it. Nobody will accept that it's the best of its kind. The media ignore it, companies will not encourage their employees to discus it with each other, etc...

</comment></comment></comment><comment><USER18> Total sidenote but someone should start a cryptocurrency that is proof of Storage-space(does that exist?), where you have to allocate space to mirror the content of the Internet Archive. Is there a way that could work? (I know almost nothing about cryptocurrency)

<comment><USER19> There are a ton of them. THey don't pay enough for people to take seriously though. Amazon does it way better right now.

<comment><USER20> There's a ton of filecoins mirroring the internet archive?

</comment></comment></comment><comment><USER21> Proof of work is anyway bad idea (work for nothing), unless the work is something useful.

<comment><USER12> The work is useful. It randomly selects a participant out of potentially billions or more to commit the next block, but _only_ the next block, and no others to the blockchain. This ensures the chain remains fair because any potentially malicious actor cannot sustain an attack involving malicious blocks for long - it costs them too much electricity.

There is no known alternative system which is capable of randomly selecting a participant out of the entire pool of participants. Every other "solution" works by limiting the participation, because it is impossible for a network wide agreement at this scale to be done (would require every node communicating with every other node in the network and having a unanimous agreement on who has the legitimate authority to commit the next block).

Any system which doesn't require work to be done to prove that the correct participant was selected is vulnerable to Sybil attacks, where people control more network nodes in attempt to gain more leverage over others. The idea of staking some money doesn't fix this either, because proof-of-stake has the "nothing at stake" problem where stakers aren't actually spending money because they're guaranteed to get it back for being honest. Running many nodes is also fairly cheap and has the "not much at stake" problem. Only proof-of- work has the "much at stake" problem because the irreversible spending of money on electricity happens prior to any reward which may be received, like a lottery.

You might consider Bitcoin as a whole to be a bad idea. However, with recent "printing" in the tune of trillions of dollars, and with Bitcoin providing an inviolable fix for inflation, I think it might just be worth the effort - <USER3> least for anybody sensible who wants to save money for the future.

In terms of Monero, which doesn't fix inflation, it is useful for evading unwarranted financial surveillance. I suspect this will be fine for some time to come, but there will be eventually be enough privacy features on Bitcoin to make it unnecessary. For now: save in Bitcoin, spend in Monero.

<comment><USER10> The work is useful _only in the context of it being useful to preserve and propagate the distributed, trustless consensus_. If you don't give a crap about distributed consensus, it's not useful.

>> However, with recent "printing" in the tune of trillions of dollars, and with Bitcoin providing an inviolable fix for inflation

The "printing" of money is a useful feature of national currencies, which can temporarily support an economy in peril, or be used to keep currency values approximately stable. I wouldn't want to be in a country where currency was like Bitcoin, it is deliberately less useful.

By the way, your cryptocurrency ecosystem also appears to have a money printer, in the form of Tether, which is run purely for the benefit of its owners. But sure, that's far better!

>> I think it might just be worth the effort - at least for anybody sensible who wants to save money for the future.

If you have enough money that a small amount of inflation is going to affect you, you don't keep it in cash, you invest. That's not what money is for.

<comment><USER12> > The work is useful only in the context of it being useful to preserve and > propagate the distributed, trustless consensus. If you don't give a crap > about distributed consensus, it's not useful.

So you don't care about Bitcoin, but you want to leech of the electricity being used to secure it in order to perform something which _you_ think is useful? Right.

> The "printing" of money is a useful feature of national currencies

Theft is never a useful feature. There is always a loser. Money printing is theft - it is stealing wealth from those who have money saved, those who earn low wages, and those who own property. The beneficiaries of the printed money are those who first receive it - the government, the banks, the corporations who take loans from those banks. It increases wealth inequality. All of this is achieved without democratic consent - taxation without representation. Truly evil.

> which can temporarily support an economy in peril

The economy is in peril because nobody has credit, only debt. Bitcoin is credit. If you are sensible and accumulate credit, you don't need to bailed out when the unexpected inevitably occurs. The ability of your government/central bank to print money is what created their failure to begin with. If they had credit, they wouldn't need to print. The printing begets more printing. It can only go one way, which is for the printing to keep accelerating until it can no longer be sustained and hyperinflation makes the currency worthless.

They could attempt to reverse the process by reducing the currency supply during prosperous times, but you won't see it, because the people involved have self-interest and super high time preferences and are not able to think in the long term. Printing money is truly kicking the can down the road - <USER4> experiment which will end in disaster.

> or be used to keep currency values approximately stable

There is absolutely nothing "stable" about the dollar. Bitcoin is absolutely stable because 1BTC=1BTC, regardless of time and place. Its value relative to other commodities has more or less consistently increased over its 11 year lifetime. The value of the dollar is always changing. In its short 49 year lifetime, it has consistently lost value relative to other commodities. The value of other commodities changes in response to devaluation of the dollar. The trick you've fell for is to believe that they're adjusting the quantity of dollars to account for changes in other commodities - the reversal of cause and effect.

> By the way, your cryptocurrency ecosystem also appears to have a money > printer, in the form of Tether, which is run purely for the benefit of its > owners. But sure, that's far better!

Who is "your"? Cryptocurrency means nothing to me - I've called out these scams as much as anyone. Only Bitcoin matters. Tether has nothing to do with Bitcoin. It has something to do with companies which trade with Bitcoin and no more. Bitcoin is much bigger than any of these transient schemes which attempt to attach themselves to its brand. Bitcoin will survive all of these attempts to weaken it and these schemes will all be forgotten about.

> If you have enough money that a small amount of inflation is going to affect > you, you don't keep it in cash, you invest.

Inflation affects everyone, whether it is a small or large amount. You still lose a proportional amount of purchasing power. You might argue that people with smaller amounts of money are harder hit that those with lots of money, because they don't have as large safety net if unexpected circumstances arise. Additionally, low earners do not see their wages increase in tandem with the inflation - it usually lags, reducing their purchasing power over time.

Also, "investing" is increased risk taking, where saving is intended to be a low risk method of retaining purchasing power over time. Low earners often cannot afford to take these risks, especially when their limited options for investing are markets full of fraudsters, and whose potential returns are still highly dependent on the monetary policy of the central bank.

Keeping earnings in cash is not an option for dollars, but it is for Bitcoin. This is the game changer. People are now able to make long term savings without making risky investments. They can ensure that they have a safety net for unexpected circumstances, and then better plan for the future.

> That's not what money is for.

The value of all commodities is subjective. Money is merely one kind of commodity. Its use is whatever the owner wishes it to be used for. Saving (accumulating capital) is a perfectly good use case for sound money.

<comment><USER10> > So you don't care about Bitcoin, but you want to leech of the electricity > being used to secure it in order to perform something which you think is > useful? Right.

No, I want the world's energy and carbon footprint to reduce, rather than have people with a decentralisation fetish invent new ways to incentivise thrashing.

> Theft is never a useful feature. There is always a loser. Money printing is > theft

Yeah never mind, you're clearly very deep down this particular rabbit hole and nothing anyone says is going to change that. Best of luck, but I'm glad your views aren't all that prevalent.

> Tether has nothing to do with Bitcoin

Tether has everything to do with the bitcoin markets and the price of bitcoin, which is the only thing basically anyone is interested in.

<comment><USER22> > No, I want the world's energy and carbon footprint to reduce, rather than > have people with a decentralisation fetish invent new ways to incentivise > thrashing.

Then any way to dismantle the existing consume-everything-to-make-a-profit economy, which is caused by archaic and inefficient monetary systems, should be good, right?

How much energy is wasted / burned because of our existing monetary policies?

cryptocurrency PoW is bajillions times more efficient than, i dunno, exerting currency dominance by shows of military power or shipping goods all over the world because its "cheaper" to make things here and sell things there.

<comment><USER10> > Then any way to dismantle the existing

 _any_ way? No, and particulary one that, for instance, encourages competitive.burning of power for profit and uses the power demands of a small country to service the transactional needs of a town.

>How much energy is wasted / burned because of our existing monetary policies?

Probably quite a lot. But then they do so much more than cryptocurrency can, so the comparison is nonsense.

"bajillions" being code for "I have no idea at all" renders your argument at the end there pretty moot.

</comment></comment></comment></comment></comment></comment></comment><comment><USER23> Does this enable using PoW to run something like Ethereum VM/contracts?

<comment><USER24> The security of proof of work algorithm depends on the execution not having an economical value (and actually cost a mostly fixed amount of work).

<comment><USER23> Good point. Does that consider that case where the economic value of running the PoW is part of the network itself, as say running an Ethereum app? For the miners the PoW wouldn't be valuable, but instead of burning computation time the byproduct could be useful part of the network.

<comment><USER24> With Ethereum contracts the cost of validation is expensive, and for proof of work you need a function that is expensive to run, but cheap to verify (the inverse of SHA-256 is such a function).

The main concern against proof of stake is what you just described actually: it doesn't cost money to create, but as the value of staking is part of the cryptocurrency, a malicious party could get and stake of a lot of that cryptocurrency, create a leveraged short contract to protect itself, then reverse the transaction.

Another example would be using protein folding for cancer research for example, which sounds a noble cause, but it creates an incentive for drug companies to be miners, and could lead to even bigger centralization of mining than what is already happening.</comment></comment></comment></comment>


Esoteric C++ Contest 2018 - <AUTHOR> https://zygoloid.github.io/cppcontest2018.html <comment><USER2> It looks like nobody managed to beat this one from 2015 yet:

[http://b.atch.se/posts/non-constant-constant- expressions/](http://b.atch.se/posts/non-constant-constant-expressions/)

"Implementing f() to make the following snippet compile without the static_assert being fired looks impossible, doesn't it?

       // <insert solution here>
       int main () {
         constexpr int a = f();
         constexpr int b = f();
         static_assert (a != b, "fail");
       }

We all "know" that an expression that is usable in a constant-expression can neither depend on, nor change, the global state. This lack of dependency must inherently mean that it will yield the same value upon each invocation having the same set of arguments... right?

Up until about a week ago I "knew" this to be true, and I honestly thought the above was not possible to implement without triggering undefined-behavior (ie. writing a program that the ISO C++ Standard would consider ill-formed).

As it turns out, I was very wrong."

</comment><comment><USER3> Some of these are hilarious. I'm always astounded how easy it is to shoot yourself in the foot with C++.

It's such a important, transformative and widely used language, but due to the age and the "let's put everything in without ever removing anything because backwards compatability!" mentality has created a monster.

<comment><USER4> To be fair, how many languages are as old and as widely used as C++?(Only one: C)

Anybody can create a some shiny new language or maintain a beautiful unused language.

<comment><USER5> Fortran. Ok, maybe not as widely used :)

</comment></comment></comment><comment><USER6> > Esoteric C++ Contest 2018

[http://ericniebler.com/2018/12/05/standard- ranges/](http://ericniebler.com/2018/12/05/standard-ranges/)

<comment><USER7> I've read the criticism of that post ( [http://aras-p.info/blog/2018/12/28/Modern-C- Lamentations/](http://aras-p.info/blog/2018/12/28/Modern-C-Lamentations/) , discussed previously at [https://news.ycombinator.com/item?id=18777735](https://news.ycombinator.com/item?id=18777735) ) but not the original, and now that I did, I have that strange feeling of not knowing whether it was satire or not --- and am unfortunately leaning towards the latter.

I made another comment here on this item, that it feels like a lot of the recent developments in programming languages are more along the lines of showing off how much complexity you can add, rather than solving the real problem itself. It's a "do less with more" mindset, the complete opposite of what I believe in.

</comment></comment><comment><USER8> Somewhat off-topic, but how do you publicize your competitions better?

The author promised an iPad for the winner and got 40 entries.

What fraction of the money set aside for a competition should be spent on publicity and how much on the prize? Talking about programming/related competitions here.

</comment><comment><USER9> Within C++, there is a much smaller and cleaner language struggling to get out. Stroustrup, Bjarne. The Design and Evolution of C++. pp. 207..

<comment><USER10> That wouldn't be so bad. The problem is that it's five or six smaller and cleaner languages all struggling to get out.

<comment><USER11> Yeah I agree that nobody could agree on a single subset of C++.

I think that Bjarne might mean "modern C++", but I'm more a fan of "C with classes", and I think the latter is more appropriate for many domains. I would say those are the two main dialects (with modern C++ being split being library writers using templates and library consumers.)

The old Google C++ style guide is good, but it seems to be morphing more into modern C++ lately. It's basically C with:

\- The ability to add methods to structs

\- Basic single inheritance.

\- Collection and string classes

\- Scope based resource management.

[https://stackoverflow.com/questions/3073642/official-c- langu...](https://stackoverflow.com/questions/3073642/official-c-language- subsets)

No exceptions, no IO streams (except in one place), no implicit constructors, no operator overloading, multiple inheritance, etc.

So I woudn't say there are 5 or 6 languages, but it definitely feels like that sometimes. I think the lack of a single string type, single error handling mechanism, and single deallocation mechanism are the things that make it feel like more than one language in a single codebase.

<comment><USER12> with the exception of scope-based resourcing, that basically describes Go.

<comment><USER11> Yes I've heard people remark that Go is basically Google's C++ style guide distilled into a new programming language... It's not 100% true but there's definitely some truth to it :)

Not having exceptions is a big similarity. Go slices and StringPiece are essentially the same idiom. There's a lot of vector<> and map<> which leads to builtin arrays and maps, rather than having arbitrary user-defined data structures (i.e. no operator overloading). gofmt was definitely inspired by Google's code review process.

</comment></comment></comment></comment></comment><comment><USER13> Try raja, or any pile of templated mess. I hate templates so much.

<comment><USER14> I googled RAJA and found it was a HPC (High performance computing) library for running GPU code in C++. This couldn't be that bad, right? Turns out I was terribly wrong.

Behold, I present you this fucking monstrosity (Directly from the RAJA matrix multiplication tutorial):

      using EXEC_POL9 =
        RAJA::KernelPolicy<
          RAJA::statement::CudaKernel<
            RAJA::statement::Tile<1, RAJA::statement::tile_fixed<CUDA_BLOCK_SIZE>, RAJA::cuda_block_y_loop,
              RAJA::statement::Tile<0, RAJA::statement::tile_fixed<CUDA_BLOCK_SIZE>, RAJA::cuda_block_x_loop,
                RAJA::statement::For<1, RAJA::cuda_thread_y_loop, // row
                  RAJA::statement::For<0, RAJA::cuda_thread_x_loop, // col
                    RAJA::statement::Lambda<0>,   // dot = 0.0
                    RAJA::statement::For<2, RAJA::seq_exec,
                        RAJA::statement::Lambda<1> // dot += ...
                    >,
                    RAJA::statement::Lambda<2>   // set C = ...
                  >
                >
              >
            >
          >
        >;

And that's just for matrix multiplication. I cannot imagine how fucking terrifying it will to write something more complicated than that. If I were to write (and debug) this mindfucking mess of templated code, I would rather escape this trainwreck and go back to writing CUDA/OpenCL code...

<comment><USER15> > Behold, I present you this fucking monstrosity

It's just a Lisp-like language with a slightly different syntax for S-expressions. Ugly, like all Lisps, but nothing 'monstrous'.

<comment><USER16> How far down the rabbit hole must one be to not think that is monstrous?

<comment><USER15> The cognitive dissonance required to believe that C++ templates are 'monstrous' while Lisp S-expressions are awesomely useful and productive is enormous.

C++ templates are far from user-friendly, but they're _literally_ ( _literally_ ) just Lisp S-expressions with a Lisp syntax and semantics.

<comment><USER17> The semantics of template resolution are important, and unlike anything I'm aware of in Lisp.

</comment></comment></comment></comment></comment></comment><comment><USER18> The answer to C++ cruft always seems to be use the "modern" subset of the language. But there are three issues with that:

1\. You have to interface with older libraries that overuse terrible behavior.

2\. The hallmark of a junior developer is an overuse of features. Using a subset takes discipline.

3\. Some things are just permanently broken or so hidden you don't even realize you are using a "feature".

That's why I'm just going to stick with Rust. I have no interest in the "let's put a wig and lipstick on the C++ pig" train.

<comment><USER19> We really don't need a rust comment on every c++ submission.

<comment><USER20> Knowing Rust, Go and Kotlin that's what we're going to get sadly.

</comment></comment></comment><comment><USER21> C++ is easily the next Perl:

With a cocktail of alphanumeric overloadable operators, lambdas, variadic templates and small identifiers, all badly spaced, It would not be difficult to achieve super unreadable code with it.

They just need to figure out a way to add implicit arguments like $@, $?, @_ and we'll get a more esoteric C++. Note that $_ is a valid identifier in C++.</comment>


Antitrust Lawsuit Over Medical Residency System Is Dismissed (2004) - <AUTHOR> http://www.nytimes.com/2004/08/14/us/antitrust-lawsuit-over-medical-residency-system-is-dismissed.html?pagewanted=all&src=pm <comment><AUTHOR> I submitted this in part as a response to something missing from the residency discussion: <http://news.ycombinator.com/item?id=3032403> , which is how the market for doctors is screwed up by regulation and an anti-trust exemption.

EDIT: See also the law itself here: [http://www.law.cornell.edu/uscode/15/usc_sec_15_00000037--- b...](http://www.law.cornell.edu/uscode/15/usc_sec_15_00000037---b000-.html) .</comment>


Data Center Proxies vs Reseidential Proxies - <AUTHOR> https://blog.scrapinghub.com/data-center-proxies-vs.-residential-proxies <comment><USER2> Given the topic of proxies plus "scraping" in the domain name, I was expecting more relevant information. For example: 1) techniques to avoid being blacklisted 2) some indication of cost factors. Not just the difference between residential and data center - but within data centers themselves.

I realize it's just a blog post, but I felt it was still rather shallow and non-informative.</comment>


Beyond Heritability: Twin Studies in Behavioral Research - <AUTHOR> http://www3.interscience.wiley.com/journal/122587149/abstract?CRETRY=1&SRETRY=0

<comment><AUTHOR> It's possible to get past the pay wall on this brand new article

Johnson, W., Turkheimer, E., Gottesman, I., and Bouchard, T. (2009). Beyond Heritability: Twin Studies in Behavioral Research. Current Directions in Psychological Science, 18, 4. 217-220.

here:

[http://www.psychologicalscience.org/journals/cd/18_4_inpress...](http://www.psychologicalscience.org/journals/cd/18_4_inpress/Johnson_final.pdf)

The article, by some of the leading researchers on behavioral genetics, corrects common misconceptions about what "heritability" means. Contrary to much opinion of persons who have not studied genetics, heritability has nothing to do with what Sandra Scarr or William Angoff called "malleability," how much a trait can be influenced by environmental factors:

"Moreover, even highly heritable traits can be strongly manipulated by the environment, so heritability has little if anything to do with controllability. For example, height is on the order of 90% heritable, yet North and South Koreans, who come from the same genetic background, presently differ in average height by a full 6 inches (Pak, 2004; Schwekendiek, 2008)."

Using twin studies to look for discordant traits between monozygotic twins provides some surprising controls on assumptions of genetic determinism in human behavior:

"In a related vein, intelligence and education are often associated with healthier lifestyle choices (Deary, Whalley, Batty, & Starr, 2006; Gottfredson, 2004). Controlling for genetic and shared-environmental influences, however, Johnson, Hicks, McGue, & Iacono (in press) found that both higher IQ and greater education were associated with more alcohol and nicotine use in both sexes at age 24. This suggests that the generally lower substance use among brighter and better-educated young adults results from selection on genetic and family influences contributing to an environment emphasizing both educational attainment and reduced substance use, rather than from direct application of intelligence and/or education in substance-use choices."

<comment><USER2> Thanks for digging up this link.</comment></comment>


Human Reaction Times and Fighting Games, or Why Blocking Isn't Always Easy - <AUTHOR> http://shoryuken.com/2015/05/21/human-reaction-times-and-fighting-games-or-why-blocking-isnt-always-easy/

<comment><USER2> Here's a particularly famous example of an effective use of blocking in a fighting game tournament: [https://www.youtube.com/watch?v=EA5RlZoHDds](https://www.youtube.com/watch?v=EA5RlZoHDds)

Some quick play by play explanation. This is the final round of the match which is currently tied, whoever wins the round wins the match. The 1st player (Daigo, using the character "Ken") has almost no health left as the round is nearing the end (less than 30 seconds remaining). The 2nd player (Justin Wong, playing "Chun-Li") then initiates a powerful combo sequence which should be a guaranteed game winner, but Daigo blocks every single one of the dozen plus hits perfectly then retaliates with a game wining comeback.

<comment><USER3> > then initiates a powerful combo sequence which should be a guaranteed game > winner, but Daigo blocks every single one of the dozen plus hits perfectly > then retaliates with a game wining comeback.

He actually ~ parries ~ the hits which require frame perfect block inputs on EVERY hitframe (IIRC). Which makes his feat even more impressive. 30 or so frame perfect inputs in the heat of the moment ... amazing ..

If you look really closely, you see Daigo (Ken) shuffling backwars/forwards, he was waiting for it, he expected it ;)

<comment><USER4> Not frame perfect. It was somewhere around 5 to 10 frames.

I know that 5-frames is perfect blocking from GG / Blazblue. I forget the exact number of frames for Street Fighter 3 Alpha.

However, unlike other games, it isn't a "perfect block". A parry in Street Fighter 3 Alpha requires you to guess high/low correctly, and THEN press _forward_ instead of back.

Which means a single mistake would have most certainly doomed the Ken player.

FYI: "Frame Perfect" has a very specific meaning in fighting game terms: it means 1/60th of a second. 5/60th is actually very manageable with practice. Tournament-level players can pull off 1/60th of a second timing fairly regularly, but even 5/60ths seem to be out of reach of the casual player.

I play Blazblue, where the majority of combos are 5/60ths of a second precise.

</comment></comment></comment><comment><USER5> Using the FCG reaction speed test, I have a reaction time of about 30 frames; thats pretty terrible compared to the average 16 frames.</comment>


6.S094: Deep Learning for Self-Driving Cars - <AUTHOR> http://cars.mit.edu <comment><USER2> Trying to do self-driving entirely by deep learning in a reactive system seems like a terrible idea. Deep learning to classify objects (bicycles, pedestrians, cars, traffic lights, telephone poles, cops) is fine. But map building, planning, and obstacle avoidance needs to be more reliable than a purely reactive system can do.

Look at the videos from Urmson's talk at SXSW. That shows the worldview of a Google self-driving car. It's about 80% geometry and 20% classification.

Yes, you can get a pure deep learning system to drive on a freeway. But how does it do in a more cluttered environment? A system that builds local maps and profiles terrain with LIDAR can deal with clutter.

<comment><USER3> Why exactly can't you use deep learning to drive in a "cluttered environment?" You didn't mention why it's a terrible idea (I have no background in deep learning, just curious)

</comment></comment><comment><USER4> What are good online sources for a beginner to learn calculus, linear algebra and stats/probability needed for machine learning?

I don't want courses that teach math by coding but actual math courses. A lot of these online ML courses treat math as a black box so you never fully understand what's going on & a lot of math based ML courses are too advanced.

So I'd rather focus on understanding the math basics before diving into ML. So what do you guys recommend?

<comment><USER5> Calculus, by James Stewart. I recommend you buy a dead tree copy of an old edition (I paid $5 for mine, shipped. I don't know how they made money off that sale.) Might not be the best book, but it covers everything you need to know, has good exercises, everyone uses it, you can find the solutions manual online, and the harder problems have an answer on stack overflow.

And some linear algebra book by Strang (as others have said.) I don't remember which one I learned from, but I do remember it was excellent.

I can't recommend a good stats/probability book. People recommend Statistical Inference by Casella and Berger, although I wasn't super impressed with it.

You'll also want a good understanding of set theory and proof writing. I don't remember what book I learned from, but try to find some introduction to math thought.

This is all assuming you have a good understanding of algebra. The above mentioned books require geometry/trig, but you don't actually need that for machine learning.

<comment><USER6> I'd also recommend _Calculus for the Practical Man_. It's what Feynman used and is quite good for learning how to calculate various things with calculus.

Incidentally, my college calculus class also used Stewart.

</comment></comment></comment><comment><USER7> BTW, there's a well regarded new book on autonomous cars that looks like fun: 'Driverless: Intelligent Cars and the Road Ahead' by Lipson and Kurman. Lipson is a professor of robotics at Columbia.

[https://www.amazon.com/gp/product/0262035227/ref=oh_aui_deta...](https://www.amazon.com/gp/product/0262035227/ref=oh_aui_detailpage_o07_s00?ie=UTF8&psc=1)

</comment><comment><USER8> Which specific Coursera and/or Udacity courses are good for coming up to speed on the math/stats&probability knowledge needed for their SDC/AI/ML courses?

<comment><USER9> A linear algebra course is the bare minimum (and frequently it can be enough). You can pick up any textbook and that would give you good enough preparation.

After that you probably will have enough domain knowledge to choose what course to take next yourself.

<comment><USER10> If I don't really remember what all was in my Linear Algebra class from 15 years ago, but have a working knowledge from graphics would that work, or would I need more of a theoretical background in linear algebra do you think?

</comment></comment></comment><comment><USER11> It looks like they'll be posting the lectures online which is pretty rad. I'll be sure to make some time to watch these.

</comment><comment><USER12> I was reading through the page on the Docker install [0] and after giving it a look I'm really interested in a docker GUI. I'd hate to have to type or memorize that for a class or for doing something useful and I'd also dislike needing to maintain a file with 50 different scripts to stop & start docker and what I want to run at any given time.

Anyone know of something like that?

</comment><comment><USER13> I wonder how it compares to Udacity's similar course.

<comment><USER14> IMO, the udacity SDC course is pretty bad.

<comment><USER15> I just enrolled in the Udacity SDC nanodegree. Can you elaborate?

<comment><USER16> It's pretty cool, you'll have fun! It's "practical" not "theoretical", so the focus is on getting code working and understanding bare minimum of math you need.

<comment><USER15> Sounds pretty similar to Udacity's AI for Robots course! Good to know that they focus on intuition rather than rigor. Many professor enjoy stroking their ego with rigorous math, rather than communicating higher-level ideas and making their subject seem "easy".

<comment><USER17> That perspective seems a little naive.

They are professionals, so they know "what it takes" to be good at the subject.

Machine learning math is not rigorous in comparison to the type of math you'd study as a math or physics major.

Machine learning math is useful precisely because of the fact that it shows you intuitively how the concepts work.

Knowing the "high level" ideas is near-useless. I can get the "high level" ideas of quantum mechanics from any high school or pop science physics book. Does that mean I know quantum mechanics? Only at an extremely superficial level.

And I suspect anyone taking a MOOC on AI or machine learning wants to end up with more than superficial knowledge.

<comment><USER15> Sorry I wasn't clear about "high level".

I was mostly speaking about math professors in college. I have degrees in Math and EE...advance math isn't an issue.

Having abstract intuition (aka "high level ideas") in math is incredibly value.

Sometimes things get hairy in the computation and you need to step back and consider the bigger picture again.

If you don't understand how the math works then you don't have the intuition and vice-vera.

</comment></comment></comment></comment></comment></comment></comment><comment><USER18> super cool to see this here. do the lecture videos go up the same day as the lectures?

<comment><AUTHOR> They should be posted within a few days of the lecture.

</comment></comment><comment><USER19> It irks me, that this site is not using HTTPS. And wants me to register using passwords</comment>


Fingerprint coding may hold key to controlled gambling - <AUTHOR> http://www.theage.com.au/technology/technology-news/fingerprint-coding-may-hold-key-to-controlled-gambling-20101211-18thx.html <comment><USER2> Like the governments care about problems gamblers. If they did they would close lotteries and scratchcards operations and liberalize sports betting.

Instead they want to tell people where to spend (lose) their money, while pretending they care.

<comment><USER3> In this case it's not about what "the government" wants. It's about what a couple of key independent members of parliament who just happen to be holding the balance of power want.

Lotteries actually aren't such a big problem as far as gambling addiction goes. Nobody ever "accidentally" goes and loses half their week's pay by playing the lottery, because the act of buying the ticket is so separated from the act of finding out you lost. But the poker machine sits there playing music and lulling you into a trance while it slowly empties your wallet.

</comment></comment><comment><USER4> Interesting. This could be extended to connect to your credit report or even a realtime indicator of your net worth.

A fool and his money are soon parted, of course, but when the fool is someone who's dependent on government largesse or already has a negative net worth, and the institution tempting him into further negative-expectation games is wealthy, intelligent and sophisticated about manipulating human biases, the transaction is unseemly and has negative externalities for society.

I would rather there be net-worth 'accreditation' for gamblers and other players of guaranteed negative-expectation games than for plausibly positive- expectation private investing.

</comment><comment><AUTHOR> <Academics have long said that people gambling on poker machines can't make rational buying decisions>

While probably true, its just another example of the nanny nation making it easy to have no responsibility. I like to think this wouldn't get ten feet in the states, but I'm not so sure.

<comment><USER3> You'd think so, wouldn't you? But on the other hand, Australia is generally much more libertarian about gambling than the US is.

If you want to play a poker machine in the US, you've gotta go to Nevada (or Atlantic City, or an Indian casino, or a couple of other places). If you want to play one in Australia, just pop down to your local pub and they'll have a room full of them. There's also a casino (though only one) in every major city. And betting on horses is pretty much compulsory.

I don't like the idea of this law, but I do think it would be nice if people who have a serious problem with gambling could ban themselves from using poker machines _somehow_.</comment></comment>


All-Star Lineup Invests in MakerBot - <AUTHOR> http://www.makerbot.com/blog/2011/08/23/all-star-lineup-invests-in-makerbot/ <comment><USER2> 10M in funding for an open hardware company - this is big news! Remember when people laughed at RedHat?

</comment><comment><USER3> Yay! Congrats us!

</comment><comment><USER4> This is awesome!

</comment><comment><USER5> Oh great. Here come the IP lawyers.</comment>


Don't Get Caught in the Recession Trap - <AUTHOR> http://zachheller.com/2008/12/09/dont-get-caught-in-the-recession-trap/ <comment><USER2> Great advice for small businesses right now...</comment>


Seven Remarkable Takeaways from Massive Kubernetes Conference - <AUTHOR> https://www.forbes.com/sites/jasonbloomberg/2018/12/13/seven-remarkable-takeaways-from-massive-kubernetes-conference/ <comment><USER2> More than anything, I'm astonished that an article about k8s in Forbes of all places is both cogent and well-informed. There's nothing in it that anyone who payed attention to Kubecon or k8s in the last couple years wouldn't have known, but I'm so used to seeing Forbes push out least-common-denominator clickbaity crap that I'm actually impressed they published this article.

The title is still kind of dumb and clickbaity, but there's no accounting for one's editor's taste, I suppose.</comment>


7 ways to boost your business just by asking - <AUTHOR> http://www.tryary.com/news/742/7-ways-to-boost-your-business-ju

<comment><USER2> The most valuable part about this article is understanding what you're asking about. Being sure that you truly understand your customer is invaluable. You need to understand everything from WHY are they trying to solve a problem, HOW much is this problem worth to them, WHO is involved in solving it and WHAT would it take to get a solution in place.

Place yourself on their team. Act as if you sit inside their four walls and it's your problem to solve. Care more for making the person you work with successful rather than about pushing a product on to them.</comment>


Toddlers' grammar skills not inherent, but learned, new Stanford research says - <AUTHOR> http://news.stanford.edu/2017/02/22/new-research-toddlers-grammar-skills-learned-not-innate/ <comment><AUTHOR> See also: On Chomsky and the Two Cultures of Statistical Learning by Peter Norvig: [http://norvig.com/chomsky.html](http://norvig.com/chomsky.html)

<comment><USER2> This basically postulates that language learned is a process similar to a supervised machine learning algorithms, and this, perhaps, is a more realistic view that Chomsky has. The machinery has been evolved, but "the training data" is required to make it work.

<comment><USER3> Be careful of the trap: for quite a while now, each generation has simply treated it as "realistic" to match the brain's workings to that generation's popular new computational technique.

</comment></comment></comment><comment><USER2> It is learned because the brain has specialized circuitry to be able to learn it.

The machinery obviously has been evolved and is inherited, while a grammar of a particular language has been learned.

There is also a strong hypothesis that the structure of the specialized areas of the brain "reflects" the general notions of the shared environment, such as things, attributes, processes which corresponds to nouns, adjectives and verbs.

Like visual cortex has its own hard-wired heuristics and presuppositions (that use environmental cues such as shadows, distances, illumination) which are used in the process of scene decomposition and interpretation, the language area should have its own hard-wired heuristics, which, presumably, are used in grammar learning.

The knowledge (heuristics) are encoded in the structure, not in some kind of information.

<comment><USER4> > The knowledge (heuristics) are encoded in the structure, not in some kind of > information.

When you're talking about neural computation, distinguishing between an evolved network structure/architecture and "information" (or at least biases toward certain kind of information) is not very useful. The nature of these systems as computing substrates is that they encode information in network structure and rules for updating that structure.

<comment><USER2> > they encode information in network structure and rules for updating that > structure

I think use of the term 'information' is not accurate. There are no bits and the whole information theory, it seems, is synthetic and has nothing to do with how the brain actually works. It is not a digital machine but electro- mechanical, if you wish.

<comment><USER4> Respectfully, this is begging the question :)

You're correct that neural networks don't encode information in the way current digital machines do (i.e. with explicit records/files/etc encoded in bytes). I would disagree that this is the only useful view of information. And certainly, from a Shannon information perspective, the network structure contains information (in the Shannon sense) about the environment or problem for which it was optimized.

<comment><USER2> > the network structure contains information (in the Shannon sense) about the > environment

... the way a map represents a territory instead of how a guide book does ;)

Or the way a 3D structure made out of the same 20 joined amino-acids could represent either an enzyme (the code) or a protein (the data) and that there is no distinction between code and data (which is the great insight realized in the original Lisp. It is not a coincidence that Lisp was the language or the classic AI. Sorry for the reminiscence - just love this part).

</comment></comment></comment></comment></comment><comment><USER5> It is said that babys who are spoken to in multiple languages speak later than those who are spoken to in just one language. Could this extra 'learning' cause the delay in speech?

</comment><comment><USER6> How is this not obvious? Who could claim that grammatical understanding is innate given that grammar is tied to the language and the language itself is learned? Studying how grammar is learned certainly seems like a valuable endeavor but I don't understand the "debate" over whether it's innate or learned.

<comment><USER7> Like most ticklish philosophical problems, I think it becomes less obvious the deeper in to the problem you look.

There are a number of considerations at play here, and a long history of violently disagreeing about them.

Is language tied to grammar? Or is grammar tied to language[1]? There has been a lot of work seeking to examine the common underpinnings of languages that seem otherwise disparate, and a somewhat flexible core grammatical structure has been proposed as one of these unifying components. The speculative step some take next (including people like Chomsky) is that the reason that all of these common patterns appear is that the brain has evolved some specific hardware that serves as the basis for a set of communication protocols that we call natural languages, and all natural languages instantiate this basic hardware in different ways[2].

If you think this kind of hardwiring is possible, then another obvious-but- not-obvious question follows. Can language really be _learned_ [3]? Can you take a clean slate of neurons (some arbitrary configuration of connections) and, given enough input data, end up with a system that understands language (to frame it as a machine learning problem, which it may or may not be)? Or is it closer to a game of connect-the-dots; the bare framework is there, built into the way the brain arranges itself over the course of millions of years. Input data is just required to figure out exactly what the final arrangement of the picture is, whether it looks like English or Russian or Mandarin.

The current mood in cognitive neuroscience academic circles seems to be the former case, that you can 'simply' throw enough data at a general-purpose learning model and get a language-speaker out. Partly due to the success to deep learning approaches in what were previously very difficult problems in NLP. But I don't think it's fair to say there's nothing worthy of debate here.

\---

[1] Or is this a false dichotomy and there's some even weirder relationship between the two.

[2] For a primitive example, languages with SVO ordering vs. SOV ordering. Different instantiations of the same triple with subjects, objects, and verbs. Ray Jackendoff took this another step with formulations like XBar grammar, which was trying to demonstrate how a universal, parameterized grammar might look.

[3] Grice had a fun theory that the observable signal of language is _so_ noisy that it's impossible to learn outright, regardless of the number of examples you're exposed to. And thus, everyone speaks a slightly different language, and some sets of these idiolects are, roughly, mutually compatible. I don't think he ever did any math to demonstrate this though.

<comment><USER8> > Grice had a fun theory that the observable signal of language is _so_ noisy > that it's impossible to learn outright, regardless of the number of examples > you're exposed to. And thus, everyone speaks a slightly different language, > and some sets of these idiolects are, roughly, mutually compatible. I don't > think he ever did any math to demonstrate this though.

I'm not sure how you'd reduce this to something mathematically demonstrably, but it seems to me that it's the only thing that _could_ be true. The alternatives is that languages are real, distinct, concrete things that exist independent of people, rather than arbitrary lines drawn by people around the continuous and evolving variation in ways people communicate.

<comment><USER7> So, the only hunch I have is that there might be a kind of cryptographic/information approach to it. If you treat natural language as a noisy encoding of some underlying set of intents (whatever sentience is), then the question becomes "is there enough Information in the signal (natural language) to accurately model the underlying intents statistically?". If the answer is 'no', or 'yes, but very badly', then it seems likely to me that there's some shared hardware/firmware (in this framing, the functional equivalent of a decryption key) between people. If the answer is 'yes', or 'yes, mostly at least', then there's no need for any kind of universal grammar or such, and you can learn language from a blank state. Basically, is natural language something like a one-time pad, or is it more like a breakable form of encryption?

Of course, there are plenty of assumptions in that model (for one, can you even separate 'language' from 'sentience' like an information model would suggest. I'm not so sure you can, but then I've always been somewhat sympathetic to Sapir-Whorf). I'm also not a competent enough mathematician in these fields to see where all the holes in this line of thinking are.

</comment></comment></comment></comment><comment><USER9> How long is the one side of this thing going to talk past the other?

</comment><comment><USER10> I am surprised this required research. How is this not obvious ? What's next ? Algebra skills and essay writing? You could pretty much do this research for every thing we ever learn from school to college and publish endless amount of papers.

<comment><USER11> No this is not obvious. Throughout human history and even today algebra, writing and reading are hard skills for humans which require years of training to master.

Ability to speak however comes very naturally without special training. Human societies independently developed isomorphic grammar. For example Navajo Indians helped American soldiers translate their messages into Navajo and back so Germans wont understand it.

This sort of evidence lead scholars like Chomsky to believe that human brain might have some in-built ability aided by evolution to parse some basic grammatical rules.

<comment><USER6> > _Ability to speak however comes very naturally without special training._

It literally takes years of practice for children to speak well. Maybe it's natural but we tend to dismiss the difficulty because it happens early.

I would think if we had dedicated hardware for grammar subsequent languages wouldn't be so difficult to learn either. It's easier to learn algebra than a second language.

<comment><USER12> Children learn language without instruction. That is all. Clearly, there is innate linguistic capability in humans.

<comment><USER13> My granddaughter (1y 8m) uses flossers without instruction. Clearly, there is innate tooth hygiene in humans.

No, what's happening is she's mimicking the adults in the house. She's observing and repeating. She's done the same thing with dolls: put them on her shoulder, pat them, make shushing noises ... because we do that with her; because she see's others do that with other babies.

"Instruction"? No. But the only "innate" behaviors this child has involve eating and curiosity. Everything else is spurred by that innate curiosity.</comment></comment></comment></comment></comment>


Ask HN: Open source tax calculator? - <AUTHOR> I want to create a budget application for my own personal use cases. I'd like to be able to calculate both withholding and end of the year taxes. Are there any open source libraries that would help me do this? I'd prefer python or C++, but would work with any language. <comment><USER2> I wrote a withholdings calculator in Excel for myself this past year, I can try to clean it up and post it somewhere. I also developed it to the point that it gives me a very accurate estimate of my final tax refund/owed amount (I added fields to allow me enter interest, dividend, and other income). [0] describes the withholding tables for 2019. Income tax withholding starts on page 44 and is the most relevant. Social security is 6.2% of income up to $132,900 (0% over that) and Medicare is 1.45%. It's actually a pretty straightforward task to produce regardless of language.

Those plus your local state income tax withholding tables should be enough to get started on making something like this yourself.

The open tax solver linked looks good, but their payroll calculator assumes weekly pay which will get you in the ballpark but won't be accurate if you are paid less frequently (you can't even just double its numbers for biweekly pay, due presumably to rounding issues).

Py1040 looks ok as a start but will also only cover your end of year tax situation. It's also using hardcoded tax tables which is unfortunate since they seem to have been last changed in 2016 and so is wrong for 2018 and forward. Using external tables to drive it would make it much easier to update.

The IRS Withholding calculator will, of course, be very accurate but you can't really embed it into anything else. And if your tax situation is simpler you can elide a lot of details.

[0] [https://www.irs.gov/pub/irs-pdf/p15.pdf](https://www.irs.gov/pub/irs- pdf/p15.pdf)

</comment><comment><USER3> Is the IRS Withholding calculator good enough?

[https://www.irs.gov/individuals/irs-withholding- calculator](https://www.irs.gov/individuals/irs-withholding-calculator)

</comment><comment><USER4> [http://opentaxsolver.sourceforge.net/](http://opentaxsolver.sourceforge.net/)

</comment><comment><USER5> [https://github.com/b-k/py1040](https://github.com/b-k/py1040)</comment>