Focus. Focus. Focus. - <AUTHOR> http://ezliu.com/focus/

<comment><USER2> The reality is that none of those things (except 8 and 11, which have strong offerings already) listed are billion dollar ideas.

This is just a reiteration of the current Internet strategy:

1\. Target a niche. 2\. Create a strong base. 3\. Grow like mad. 4\. Move into other offerings.

This is exactly what trees in a dense forest do - they grow up as fast as possible, and then when they're on top they branch out to both absorb more sunlight and prevent competing trees from outgrowing them.

So the real message is 'focus, focus, focus, until you get big and then try and do everything in your space before the second-starters outpace you.'

I'm not saying this is a bad thing - from an ecological perspective, it is very good for the forest, but not so good for the trees.

<comment><AUTHOR> Thanks for the comment, debacle.

To be clear, I'm not trying to say this is a good way to run a startup or that anyone should do it.

In particular, I am really bad at doing more than one thing. It is one of my personal weaknesses. Some people, like my previous cofounder Andrew, are great at it. But as a result, I HAVE to be focused to get anything done. This isn't true of everyone, its just something that I finally realized about myself and its changed the way I work. My typical day literally starts with me adding to my to do list, ordering it, then knocking them out in order.

I think the idea of a startup founder with nothing to show for himself but a string of dead websites (me) advising other people on optimal strategic decisions for _their_ startups is a bit silly. I think all those ideas I cut out are great ideas, my brain just isn't big enough to hold more than one.

<comment><USER2> I don't want to make you feel like you've been called out. There are many startups with this vehicle for growth, and it seems to be the YC startup MO.

Twitch.tv is possibly the best example of this phenomenon.

<comment><USER3> Twitch.tv is a Justin.tv project- whose strange start is probably an even better example of what you're saying

<comment><USER2> Ah, sorry, I didn't know they weren't one in the same. I thought Twitch.tv was Justin.tv rebranded.

Justin.tv was who I meant.

</comment></comment></comment></comment></comment><comment><USER4> This is great. We've been hearing the mantra of MVP and focus for quite a while now, and it's nice to see an example that really lives up to the focus mentality.

I hope Rocketlease takes off soon-(as a tenant) I hate having to take paper forms, worry about making a "typo" and needing white-out, then having to fax it back to the apartment within a 24 hour period.

</comment><comment><USER5> If you haven't, I highly recommend reading Jonah Lehrer's book _Imagine_ : [http://www.amazon.com/Imagine-Creativity-Works-Jonah- Lehrer/...](http://www.amazon.com/Imagine-Creativity-Works-Jonah- Lehrer/dp/0547386079)

It turns out that there are two sides to creativity: a more left-brained tendency to focus on something and take it to completion and a more right- brained tendency to have inspirations and insights.

It certainly sounds like you've got the left-brained part of it down, but I don't think that shutting out new ideas like this is a good idea. What's important is being able to recognize which random ideas are worth entertaining and which ones aren't. I know that if I shut out all of my random ideas, I'd have dismissed some of the best ones.

This isn't just an abstract question either. Having really great ideas that are executed well is the difference between a product that merely does its job and a product that people love and tell all their friends about.

</comment><comment><USER6> So I've got a question for ya. At what point do you know your MVP is actually a MVP? Part of the issue with focus, as I see it, is what if you focus on the wrong thing. Do you have metrics in mind to know when to bail or pivot? A stop or limit (I forget which is which) point.

So I'm curious about what you are planning to watch for? What signs will tell you to focus on something else?

</comment><comment> jack-r-abbit Excellent write up. And most of all thanks for highlighting your service. I'm entering my 2nd month as a landlord so I don't need your service right now. But I know I would have used it a few months ago when looking for our first tenant. I'll bookmark your site for future use. If things go well, I won't be needing it for a few years though (fingers crossed).

</comment><comment><USER7> Have you encountered any legal issues with this? I've only briefly looked into property management/rental issues but I have seen some states that require a person to be a licensed real estate broker in order to negotiate a lease.

Do you process applications but leave the actual lease agreement to the property manager or owner?

</comment><comment><USER8> Did anyone else notice that the link to the product web site was on the text "online apartment applications" rather than the product name "Rocket Lease"? I know it's good SEO to backlink on the keyword, but it still seems grey-hat to me.

<comment> jack-r-abbit well there are two other places in the blog that has "Rocket Lease" linked to the site. It seems like he used a good linking style for the context in that first sentence. It allowed him to highlight the startup name with bold first (rather than having it be just another link on the page) followed by a brief description of the product as the link. It flows.

I found it more odd that the logo on the right just links to the image rather than the site. But that might be for a reason I'm not privy to.

<comment><AUTHOR> I forgot that you can link images. Thanks for pointing that out... Just started blogging so I forget stuff like that.

Fixed.

</comment></comment></comment><comment><USER9> I feel for you re the advice. Simple ideas are subject to the "bike shed" phenomenon. Since people are able to understand your product, they assume they know what you should do next.

</comment><comment><USER10> That's a long list of things rocket lease does not do.

<comment><AUTHOR> This is true, Alex. there are in fact many, many more things Rocket Lease does not do that would be very valuable. These include, but are not limited to:

      - Curing cancer
      - Making solar power economically viable
      - Better public transportation systems
      - Improving public education
      - Picking up my dry cleaning

=)

That probably seems aggressive but its not intended to be. From my standpoint those are just all businesses I don't do (well, except for picking up my dry cleaning, I do that. But Rocket Lease will not pick up _your_ dry cleaning)</comment></comment>


Spain planning on going ahead with 'Google tax' despite US tariff threats - <AUTHOR> https://elpais.com/elpais/2019/12/04/inenglish/1575463947_590283.html <comment><USER3> I'm not sure of the details of Spain's proposal but something needs to be done really to make taxation more fair. At the moment you get headlines like "Facebook paid just £28m tax after record £1.6bn revenues in UK" because they fiddle it with offshore tax havens while normal UK businesses have to pay more like 30% of their income in tax, not 1.7%.

<comment><USER4> _normal UK businesses have to pay more like 30% of their income in tax_

UK corporation tax rate is 19%.

USA corporation tax rate is 21%. Pushed down partly due to low tax competition from the rest of the world, i.e. places like the UK.

Facebook pay little corporation tax in the UK because it isn't a British company. It's an American company. It was created in America. Most of its employees are there. Its headquarters are there.

The EU works the same way. Corporate taxes are levied where the company is headquartered. It's arbitrary but all other ways to try and divvy up something inherently multi-national are even more arbitrary.

I am British myself and I really don't understand why my fellow Brits have such a hard time understanding this - foreign companies pay little UK tax on profits _because they are foreign_. They were _not made in Britain_. If Facebook had been formed in the UK then for sure, most of its corporation tax would be paid to the Exchequer. But unfortunately it wasn't.

<comment><USER5> I'm sorry if this is a misunderstanding but I thought you pay tax where you do business. So Facebook should be tax on profits generated in the UK - but they play with their corporate structures to make it look like they aren't actually doing any trade here.

<comment><USER6> A couple of points:

1) If you pay tax where you do business do you pay tax on global profits there? For example, France's new law taxes 3% of global revenue if you do more than €28m in business in the country. Should it be taxed on 3% of global revenue or on the exact amount of business it does in France?

2) If BMW sells a car in the US, do we tax BMW global for doing business in the US at the 21% tax rate?

" The levy designed by Spain included a tax rate of 3%, which would be applied to certain digital services from tech giants whose global revenues exceed €750 million and whose earnings in Spain are greater than €3 million."

So let's say the US goes back to Europe and says ok Europe, all of your best industries/companies face a 3% tax if you do more than a million dollars worth of business. How would those companies react? Think they might press their governments to do something about it?

I'm not a fan of tax-avoidance or anything, but I hardly think this proposed solution is fair, or won't elicit a significant response from the US. It's protectionism - so call it that and make sure you are railing against the internet about it like you do when Trump does random tariffs.

Spain doesn't export a lot to the US maybe? Ok then the US can just pick and choose Eurozone members to arbitrarily tax. That's what I'd do. 15% tax on global revenue for European cars sold in the US. Why not?

<comment><USER7> Regarding 1), it is a 3% on France revenue, not global revenue.

</comment></comment></comment></comment></comment><comment><USER8> These are patchwork solutions.

It would make more sense if EU countries would make laws that extend normal VAT to all internet business in EU and close all Irish loopholes. Google and others use Irish tax arrangement schemes like "The Double Irish" (base erosion and profit shifting), the Single Malt, and CAIA to avoid paying taxes.

12 EU states reject move to expose companies' tax avoidance [https://www.theguardian.com/business/2019/nov/28/12-eu- state...](https://www.theguardian.com/business/2019/nov/28/12-eu-states- reject-move-to-expose-companies-tax-avoidance)

<comment><USER9> The EU will never close tax loopholes since there will always be a veto from the likes of Ireland, Netherlands, Luxembourgh or UK.

<comment><USER10> Wow. The EU requires unanimous approval. The Europeans looks at the US' Articles of Confederation and said, "we can make that work." They need a rogue group of reformers that create a new system of government, illegally, like the US' Federalists. Only then will the EU get its shit together.

<comment><USER11> The reason the EU's system is so similar is that the circumstances are similar. If you don't require unanimous approval on critical issues then why would smaller countries ever join with Germany, France, Italy, and the UK around?

<comment><USER10> If you require unanimous agreement how can you ever prevent a bad actor from taking advantage of the system?

<comment><USER11> By persuading them. It's also much less of a problem that a small country as a bad actor takes advantage of the system compared to big countries abusing smaller ones.

<comment><USER10> Will Ireland vote against their current income?

</comment></comment></comment></comment></comment></comment></comment><comment><USER12> I wish the article had more info on the mechanics of the tax. How do they measure "value" and what percent of the value do they want to collect as tax?

The ad sales might make sense, but why not just add a tax on all advertising.

The marketplace tax is confusing because do they tax the value of the transaction? The full customer value that results of the acquisition? Why not just use existing sales tax for retail transaction (which e-commerce is).

The last one is the hardest to understand. Do they mean sale of data from Spanish citizens? Or only people created data while in Spain?

It seems simpler to just create a "data sales tax" that happens specifically for transactions where data is sold to or from Spanish orgs.

I think this will just result in a tarrif on Spanish goods.

<comment><USER11> > _Why not just use existing sales tax for retail transaction (which > e-commerce is)._

My guess is that they already do. The government just wants more tax revenue as usual. Tech companies are just a good punching bag right now.

Edit: I cannot imagine that they are _not_ collecting VAT on these transactions. Digital VAT is a very explored topic in the EU.

</comment></comment><comment><USER13> IMO the corporate tax rate should be zero, and then everyone would be on the same playing field. Right now the only companies that pay taxes are small ones without the resources and staff to get around it. With 0% corporate tax, all of these games and shenanigans would end.

Also, corporate profits are double-taxed anyway, as taxes are paid once on profits then again as dividends / capital gains by the shareholders. This is one reason stock buybacks are so popular - way to benefit shareholders without the ridiculous double taxes.

<comment><USER3> Zero corporate tax would lead to a lot of avoidance and drops in government revenue. Say you are a consultant earning 100k a year who owns a house. You could just pay the 100k to your company and borrow against the house for living costs and pay zero tax for the time being.

<comment><USER14> Right but eventually they money has to get from the company to the consultant - either dividends or wages. Either way it'll be taxed.

<comment><USER15> Yep. Eventually. Meanwhile Buffett's tax rate on his (and his companies) income is within the distance of epsilon from zero. Can you estimate when Buffett is going to need the bulk of the money from his compankes to buy a new house? How long heis going to have approximately zero tax rate, that is? My personal estimate is with a very good approximation 'never'.

<comment><USER16> Buffet pays capital gains taxes and most economists who argue for dropping the corporate income tax only recommend so with an increase in income/cap gains taxes or even merging them.

</comment></comment></comment></comment></comment><comment><USER17> I have been seeing these headlines more and more lately and I have a nagging suspicion that somebody is pushing an agenda. What exactly that agenda is remains to be seen.

As for the news article you mentioned, it should be noted that the £28m is corporate tax, not _all_ the taxes. I'm reasonably sure that FAANG is not shirking the government on VAT or payroll taxes. As for why they pay so little corporate tax, I'd guess it's because they're not an EU company.

All of FAANG's cost centers are in the US so it makes sense that they are allowed to offset those costs with revenue from the rest of the world. Whether they are doing so fairly is another matter, but even then, I suspect the victim here is the US (since the money should be going there instead of some tax haven) and not individual EU member states.

<comment><USER3> There are currently a lot of ways for multinational companies to reduce their tax burden to near zero by for example Microsoft allocating most of their European profits to a DVD stamping plant in Ireland which had a near zero rate at the time. Also they are kind of expected to maximise shareholder value by taking advantage of such legal avoidance schemes.

The proper way to stop this is for counties to make anti avoidance laws.

I recall a fuss in the press over Google along the lines of

"Using dubious tactics dubbed the 'Double Irish' and the 'Dutch Sandwich', Google apparently was able to pay only 3.2 per cent in tax on its overseas profits in 2011 even though most of its sales were in countries with tax rates from 26 to 34 per cent,"

and Google's CEO said

"We pay lots of taxes; we pay them in the legally prescribed ways," he told Bloomberg. "I am very proud of the structure that we set up. We did it based on the incentives that the governments offered us to operate."

And basically if the governments want more tax they have to pass appropriate tax laws:

"If the British system changes the tax laws, then we will comply. If the taxes go up, we will pay more, if they go down, we will pay less. That is a political decision for the democracy that is the United Kingdom."

Which is kind of what Spain is trying to do.

<comment><USER17> > The proper way to stop this is for counties to make anti avoidance laws.

You mean tax evasion, not tax avoidance, right? Last time I checked, avoidance was legal, evasion was not.

If you actually did mean tax avoidance, then I must point out how dangerous the idea of somebody arbitrarily deciding what _legal_ option is okay or isn't okay on a case by case basis.

I'd much rather have some things reclassified as tax evasion rather than having a "just trust us" system in place that decides when something is legal or not.

<comment><USER18> No, we really do mean a "general anti-avoidance rule" (GAAR e.g. [https://www.gov.uk/government/collections/tax-avoidance- gene...](https://www.gov.uk/government/collections/tax-avoidance-general-anti- abuse-rule-gaar)), because otherwise you end up in an endless loop of adjusting the rules against moving targets.

GAARs ultimately boil down to the question of "did you do this rather than a more obvious transaction structure simply to pay less tax", a sort of Occam's razor.

> dangerous the idea of somebody arbitrarily deciding what _legal_ option is > okay or isn't okay on a case by case basis.

This happens all the time in precedent-based systems whenever something unclear is litigated. In some sense it's what the legal system is for, and it's the very opposite of arbitrary.

<comment><USER17> > GAARs ultimately boil down to the question of "did you do this rather than a > more obvious transaction structure simply to pay less tax", a sort of > Occam's razor.

Okay, so it is a "just trust us" system of deciding who is breaking the law and who isn't. In that case, I'll gladly take multinationals not paying taxes over some government official arbitrarily deciding that I am avoiding taxes and should be punished. Even more so because I live in a country where that same official might be untrained, apathetic or downright corrupt.

> This happens all the time in precedent-based systems whenever something > unclear is litigated.

Which, AFAIK, the European system is not.

<comment><USER18> It is not arbitrary. If you're in a corrupt system, you're vulnerable even if you have followed the rules. GAAR systems generally have a set of best practices, and if you disagree with the result you have access to the court system ( _not_ "a government official") to work it out.

<comment><USER17> > ...if you disagree with the result you have access to the court system (not > "a government official") to work it out.

You also have access to the court in case of actual tax evasion, though I assume the odds would not exactly be in your favor.

My whole point is that you're better off avoiding the whole ordeal in the first place and that having large multinationals and governments playing whack-a-mole over the tax system is an acceptable price to pay.

</comment></comment></comment></comment></comment></comment></comment><comment><USER19> As a non-economist (amateur or professional), I get the impression that countries are losing their concern of the repercussions of displeasing the USA economically.

Is this an accurate interpretation? If so, is it that they're less fearful of reprisals (tariffs?) or that they're less confident in the benefits of cooperation with the USA? Or a mix? Or something else?

<comment><USER20> Europeans like me like America because they are very vocal about freedom and liberty but we are waking up to the reality that it's all talk.

The USA behaves like Russia and China, they spy on foreigners, influence their elections, start unjustified wars for oil and generally have a very low regard for freedom and liberty outside of their soil.

USA are not the good guys and Russia and China are not the bad guys they are just powerful, and USA are clearly loosing that power to Russia and China.

> If so, is it that they're less fearful of reprisals (tariffs?)

These sorts of threats only work on small poorly established countries and Europeans know it. We wrote the game Americans are playing and I hope they learn from our mistakes, or they will end up like us.

<comment><USER21> China, perhaps. Russia is in the doldrums.

The 'problem' with China is that it's an ethnostate, or wants to be. So in a practical sense most Westerners are better off fixing their allegiances to the US, for better or worse.

At least then you can be part of the apparatus and not pre-emptively sidelined. I like some aspects of China vs. the US too, but _China is for the Chinese_ , as they say.

<comment><USER22> Americans (and Europeans) are very used to the idea that no matter your race or creed you can be just as American as anyone else. We many times forget that not every country in the world acts this way. China being one of them.

<comment><USER20> Thats nonsense, even if you ignore the past problems we had with race and creed like the genocide of native Americans, enslavement of Africans.

Today Americas police and prison system has institutionalised racism. USA has camps they keep Mexicans in and separate their families.

China and Russia do these things too I know but that doesn't white wash what we do.

> Americans (and Europeans) are very used to the idea that no matter your race > or creed you can be just as American as anyone else

As long as your race is white and your creed is western. I would say the same thing about china as long as you are Chinese.

</comment></comment></comment></comment></comment><comment><USER23> This is just a government looking for another tax to levy on its people. Google and Amazon will not pay it. The consumers of services offered by those companies will pay it. If there is 3% tax on every google ad sold in Spain. All will Google do is add 3% to its prices for Spanish users.

<comment><USER24> they can then just buy ads via another EU country

</comment></comment><comment><USER25> They expect to make €850 million in exchange for tariffs from the US which will hurt the already battered primary and secondary sectors. A flawless plan.

<comment><USER26> It's not about the money - it's about sending the message. No pun intended.

</comment></comment><comment><USER27> This feels like a battle between governments, and I'm glad to hear OECD are involved.

Corporation tax feels like it should be agreed between nations, not between individual nations and corporations. The Google multinationals of this world expect to pay a certain amount in corporation tax but right now too much of that is concentrated in the US and Ireland. Of course the US government is tied — it doesn't want to give up the giant share of the pie it currently has, and would lose out on if some of that went to Spain instead.

It's right that it should be a shared source of revenue between all countries in which the multinational operates, but I think a new kind of tax is the wrong way of going about it when corporation tax reform could solve the same issue and be more generally useful.

Payroll tax — a significant source of government tax revenue spread around the world, when a corporation has expanded worldwide — is distributed fairly in this way already.

</comment><comment><USER28> An honest question - What outcomes would there be if countries like Spain decide one day to impose exorbant taxes, like those totalling $1b annually for Google?

Would it just be cheaper for these companies to pull out? And what international recourse would happen?

<comment><USER29> Only when the taxes reduce their profits to zero. As long as a country only taxes domestic revenue, that's unlikely to happen.

And in my opinion, countries should be taxing (domestic revenue - <USER2> costs), rather than allowing companies to move their undeclared profits around to the nearest tax haven to dodge all taxes.

<comment><USER30> So if I setup a company to do research and development in Spain, and spend $100 billion dollars creating a breakthrough technology, then I license my breakthrough technology to Americans for $1 billion dollars per year, America should be taxing my $1 billion per year in revenue as if it were 100% profit because I don't have any expenses in America?

<comment><USER29> Yeah. You already deduct your costs in Spain from your profits there. If you don't do any business in Spain, why are you there? The idea here is to discourage corporations from putting basing in tax havens where they don't do any business. Taxes are paid where the profit is made.

<comment><USER30> Maybe I am in Spain because I am a Spanish citizen? Maybe I want to do R&D there because that is where the expertise is that I need? Maybe I thought my tech was going to be much more successful in Spain when I set it all up, but found out that the market wasn't there but was in the US?

<comment><USER29> I don't deny that my idea will result in some degree of protectionism. I think that's worth it in this case in order to prevent the flight of profit to tax havens, but there are absolutely edge cases where it forms some barrier to free trade.

On the other hand, having pure profit in a foreign market without any costs there, doesn't sound like a terribile position to be in. And maybe local businesses could use a bit of an edge compared to multinationals.

</comment></comment></comment></comment></comment></comment><comment><USER31> 850M euro, the proposed amount to be raised, would be on the order of 1% of Google's worldwide revenues. Google doesn't break down its revenues by country but it's hard to imagine it derives more than about 1/20 of the revenues from Spain. If we assume 1/20, which seems very generous to Spain, the amount to be raised amounts to about 20% of revenues in Spain.

So, this seems very high to me? Is this amount annual, or decennial like how US spending and tax amounts are reported?

<comment><USER16> The tax will effect more than Google like Facebook and Amazon. The 850M number accounts for the tax revenues from all companies.

<comment><USER31> Ah, great point. I was misled by the title, although now I recall that it did discuss Amazon as well.

</comment></comment></comment><comment><USER32> According to CEIC Spain had $232B of tax revenue in 2018. The article suggests it's going to bring 850M EUR = $943M to state's coffers so would represent around 0.4% of yearly tax revenue.

How come it's easier to impose a tax on particular area (which sounds unfair) and risk international relations with US instead of doing something else to gain just 0.4%. Either it's ideologic or they really can't find the money.

</comment><comment><USER33> None of it is going to end good. Will we have to pay to EU countries for every click from a EU country? The Great Chinese Firewall aint got sh on this

</comment><comment><USER34> For me it makes total sense to tax Google, Facebook and all others. Why not? What do you to lose? Parking your IP in some remote country, be it Ireland or Turks and Caicos, is fine until you realize that the IP protection is not as bullet proof as you thought. And please don't come to California to sue to protect your IP. I still can't believe that none of those companies are paying Federal nor state taxes. For now. Well, they do pay some insanely low taxes.

<comment><USER35> This has absolutely nothing to do with IP but everything to do with the delivery of services which are free, supplemented by advertising income accounted for abroad where it can not be taxed by the country where the service was delivered.

Looked at in a different way: if Google was a paid for service you could levy sales tax on that service.

<comment><USER36> But Google earns it's money from selling ads. If they are selling those ads to business in EU, the mechanics (and taxation) seem to be the same as (for example) a US graphic design company selling logo design services to businesses in EU.

What exactly is new here? Is it just the size (and wealth) of Google and similar companies that has encouraged the governments to try to take a larger slice of pie?

<comment><USER37> Companies are always going to find ways to avoid taxes and privatize more profits to fewer and fewer individuals. It's the responsibility of the government to find those loopholes and get them to pay a fair share to maintain the society they exploit for that profit.

<comment><USER36> Thanks, but that is barely related to the specifics of my comment and seems ideologically charged to boot.

</comment></comment></comment></comment></comment><comment><USER38> Let's take a moment to savor the irony here -

Donald Trump is leading a charge to stop unfair taxation of American tech companies abroad, while they openly work to get him out of office by any means necessary.

<comment><USER39> Why is this taxation unfair?

<comment><USER38> Someone else explained it well here: [https://news.ycombinator.com/item?id=21713883](https://news.ycombinator.com/item?id=21713883)

The proposed new tax is on top of everything in place, just to placate political rhetoric about big American tech "getting away".

This is entirely a nationalist, protectionist tax Spain is levying, and it's not rooted in reason

</comment></comment></comment><comment><USER40> Just a note on the more than likely ruling coalition: Unidas Podemos is not left-wing. It's extreme left (communists). Which helps explain the push.

</comment><comment><USER24> I don't understand why the US constantly interferes in the internal affairs of other countries like this

<comment><USER41> Spain has very few large technology companies relative to the US. This tax is effectively a tariff on US technology companies operating in Spain, making it no longer an internal affair.

<comment><USER42> Last time I checked, comapnies are subject to the laws of countries they operate in.

<comment><USER43> Not trolling, but is there anything that says they're breaking the current laws in Spain? (I'm from the UK, so no dog in this fight althought I can see our gov implementing it at some point I reckon)

Sure, they're taking advantage of tax loopholes I'd bet but in themselves, they're not necessarily against the law.

They're probably paying all the tax in Spain they're currently, legally obliged to pay at the moment.

Just my £0.02

Edit: Just thought of something? Is there a google.es? If this is what they are talking about, would it not be easier for Google just to bin that one and for Spaniards to be automatically redirected to another Spanish-speaking version, like one of the South American ones?

<comment><USER44> There's no such thing as a tax loophole. It's the law, and is written specifically the way it is for a reason. "Loophole" by definition implies that it's a mistake, and with the amount of money at stake that's incredibly unlikely.

<comment><USER43> I upvoted your comment but I respectfully disagree: If a country has a law that says "you pay X tax using this law/method but Y tax using this other law/method" Google are perfectly within their rights to say, "Let's use Y".

Who in their right mind would say "you know what, I'm going to pay more tax"?

Have you seen the size of modern tax laws?[1] They're utterly gargantuan!

[1][https://www.theguardian.com/commentisfree/2015/feb/13/britai...](https://www.theguardian.com/commentisfree/2015/feb/13/britain- tax-code-17000-pages-long-dog-whistle-very-rich)

<comment><USER44> It sounds like you agree with me. That's not a loophole. That's a conscious decision on the part of whomever wrote that section of law to basically say "pay the lesser of these two methods."

<comment><USER43> Not really. The way I explained it wasn't clear.

Usually a loophole is more complicated like the Double Irish with the Dutch Sandwich which requires some complex maneouvering on the part of the company to pay minimal tax.

I run a small business and that kind of thing is beyond my capabilities and would also cost too much but not for Google.

That's what I assumed you meant by loopholes... my explanation of the process was a bit too simplistic.

To me, a loophole is looking through all the laws and saying, "ooh, if we put our money here, then declare this thing, we can show a loss that allows us a rebate on a particular tax" or something... it's a symptom of excessive complexity in our tax systems.

I don't blame organisations for doing it.

</comment></comment></comment></comment></comment></comment></comment></comment><comment><USER45> Historically, it has always been understood that companies only pay income tax in their country of residence. BMW isn't taxed on its US income by the US, just like Google isn't taxed on its German income by Germany. I think it's more accurate to say that the so-called "Google tax" is actually a tariff on Internet services. Traditionally, tariffs were only levied on imported goods but the concept works for services as well. That said, if a country unilaterally imposes tariffs, it shouldn't be surprised to see retaliatory tariffs in return.

<comment><USER46> It depends what you mean by "understood".

For me it is obvious that BMW should pay taxes in US for cars sold in US. Are they taxfree there?

And Google should pay tax in country where they sell given good - assuming a tax can be goods based.

<comment><USER47> > For me it is obvious that BMW should pay taxes in US for cars sold in US. > Are they taxfree there?

He was talking specifically about income tax, not other taxes such as sales taxes or import taxes.</comment></comment></comment>


A record-breaking microscope - <AUTHOR> https://www.nature.com/articles/d41586-018-05711-y <comment><USER2> > Remarkably, Jiang et al. gave themselves a huge handicap with regard to > beating the resolution record. For any given microscope lens, the best > resolution is achieved by using the shortest possible wavelength of the > radiation or electron beams concerned. However, the authors used relatively > low-energy electrons, which have twice the wavelength of those used in the > highest-resolution lens-based microscopes9,10. Using low-energy electrons > for microscopy is good because it greatly reduces the damage inflicted on > the specimen by the electrons. But in this case, it also meant that the > resolution of the lens used by Jiang and colleagues was reduced by a factor > of two. To beat the resolution record, the authors had to process a > particular subset of the ptychographic diffraction data (the high-angle > data), thereby obtaining an image with a resolution 2.5 times better than > would otherwise have been possible.

Nice. It looks like this is a fresh gateway breakthrough with low hanging fruit on the other side. It's always exciting when it's not just eeking out a small increment gains blown up by University Press.

</comment><comment><USER3> What I want to know is, on the sample image of molybdenum disulfide (b), there is one atom on the right near the vertical center, that is noticeably dimmer than the rest. What could account for that?

<comment> brian-armstrong Maybe that one was less reflective than the others?

<comment><USER4> Pro tip: always polish the atoms when you make record breaking pictures of them.

</comment></comment></comment><comment><USER5> When the tomography method is well developed, couldn't this be use to scan the neural structure of a live brain? (i.e., to upload a brain)

<comment><USER6> It wouldn't work well at deep depths because it's interacting with the electron shell. After a few nanometer or two of tissue you'd have no signal. _If_ you'd figured out a way to put a brain in the microscope. They tend to want samples in a vacuum, a few cm square and no more than a few mm thick including the sample mount.

You'd have to use something like neutrons, which don't interact with electrons and can be used to image internal structure. Those tend to have side-effects, though, like inducing radioactive decay in nuclei.

</comment></comment><comment><USER7>
      The basic principle of the technique was
      proposed almost 50 years ago by the physicist
      Walter Hoppe, who reasoned that there should
      be enough information in the diffraction data
      to work backwards to produce an image of the
      diffracting object.

This kind of statement just absolutely cracks me up, because it's a clear reveal that between this sort of awareness of diffraction principles, and concepts like pilot wave theory, that double slit experiments and entanglement haven't been mysterious for decades.

It's all just media manipulation. There are very firmly understood concepts backing all the mechanics of quantum effects, and the journalists that push the ambiguities are simply trolling would-be amateurs for to fan the flames of confusion as a sort of outsider performance art.

<comment><USER8> > It's all just media manipulation.

Don't attribute to malice what can be explained by stupidity. [Hanlon]

<comment><USER9> Thank you, for once Hanlon's razor is used properly.

</comment></comment></comment><comment><USER10> Does anyone else here get slightly annoyed when Nature articles are shared here? It would be nice if there was a bot that tried to find a mirror/alternative source to the same paper. There's something incredibly disappointing and frustrating about paywalled scientific research.

<comment><USER11> I will tell you what you can't do in those situations

do not copy the DOI ([https://doi.org/10.1038/s41586-018-0298-5](https://doi.org/10.1038/s41586-018-0298-5))

do not go to sci-hub ([https://sci-hub.tw](https://sci-hub.tw))

and finally do not paste the DOI there to get the article</comment></comment>


Google Summer of Code Wrap-up: Twitter - <AUTHOR> http://google-opensource.blogspot.com/2014/09/google-summer-of-code-wrap-up-twitter.html <comment><USER2> Has anyone on here participated in this before? What was your experience like?</comment>


How to juggle 10 balls - <AUTHOR> http://community.wolfram.com/groups/-/m/t/551761

<comment><USER2> This is great but is anyone else noticing the balls are hitting in mid-air without any change in trajectory?</comment>


Ask HN: What do you think on volunteering opportunities during a pandemic? - <AUTHOR> There are many opportunities to volunteer during a pandemic: Helping at hospitals, helping dependent of healthcare workers, elderly, patients at home isolation. There are also volunteers needed to curate academic research for doctors on the field.
What do you think would be people's approach to such volunteering opportunities?
What could be done to mobilize more volunteers from all over the world?
ps. I'm building a platform to collect volunteering applicants: https://pandemicvolunteers.org <comment><USER2> People around me are already organizing volunteering small groups. A global platform for collecting volunteering leads could get quite popular fast.</comment>


Cheryl's Birthday: Singapore's maths puzzle baffles world - <AUTHOR> http://www.bbc.co.uk/news/world-asia-32297367 <comment><USER2> See also

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

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

</comment><comment><USER3> My logic for this puzzle goes as follows:

1) Albert knows Bernard cannot know the answer immediately. As 18 and 19 are days that only appear once, the month must not contain those dates, so May and June are eliminated.

2)Bernard is able to identify the month based on knowing it can't be june or may and based on his date. Therefore Bernard cannot have had the number 14. He must have 15,16, or 17.

3) Knowing it is 15, 16, or 17 uniquely identifies the date for albert. Since august has 2 options left, it must be july, and the only date available is July 16.

This is a tricky problem, but it is one that is fairly straightforward to approach step by step. Definitely appropriate for advanced students at age 15. The problem reminds me of the question about how many people on an island have blue/brown eyes.

I haven't done logic problems in a long time, so I may have erred and would welcome alternative interpretations.

<comment><USER4> [https://www.xkcd.com/blue_eyes.html](https://www.xkcd.com/blue_eyes.html)

The island puzzle, for those who haven't seen it yet.

I think that one is much more difficult because the problem is stated in a way that makes the readers think she has much less information that is actually given. The birthday problem has no trick phrasing in it.

Well, maybe a little tricky. You'd get stuck if you tried to reason from four months and six days. This would be a likely mistake if the problem were read aloud with the list of dates as "May 15, 16, and 19, or June 17 and 18..."

Recognizing that Albert and Bernard are both working with sets of 10 elements each -- one for each possible date -- then it becomes a simple graph problem.

Write a chart with rows labeled months and columns labeled days. Put a mark on each possible date. Albert circles one row and Bernard one column. Albert says none of the marks in his rows are the only marks in their columns, so draw a line through the columns with only one mark and the rows that intersect at that mark. Bernard says there is only one mark in his column after eliminating the row, so draw a line through the columns with more than one mark. Albert says there is only one mark in his row, so draw a line through the row that still has two marks in it. The only one left is July 15.

</comment></comment><comment><USER5> July 16th

can't be any of the months with unique numbers, so May and June are out

It can't be 14th therefore as you are still confused between July and August

If it was 15 or 17, then there would still be confusion about which, so Albert must have been told July and Bernard must have been told 16

edit - BBC baffles world by claiming basic logic puzzles baffle world.

edit 2 - This attitude to maths in news reports is utterly poisonous. The papers publish more difficult sudokus daily in their puzzle section.

</comment><comment><USER6> I think there are two solutions. The video in the link gives one, the other is June 17. Supposing Albert knows the day, his statement eliminates June 18 and May 19. Bernard claims to know the answer, which can only be June 17. Albert does the same logic and reaches the same conclusion.

<comment><USER7> Your second solution depends on interpreting the "Albert knows Bernard doesn't know" to mean that Bernard _told_ (or otherwise signalled to) Albert that he doesn't know, rather than Albert deducing that Bernard couldn't know.

There was a detailed rebuttal of this interpretation by the folks who set the original question.

But it is easy to claim "that's not what I meant!" Actually being precise about what you mean is fiendishly difficult. I recommend Imre Lakatosh's excellent book on proofs "Proofs and Refutations" \- its short, and thoroughly dismantles the early 20th century ideas that math is somehow a precise conceptual structure independent of language ambiguities.

Or put another way: with enough eyeballs, all language is ambiguous.

</comment></comment><comment><USER8> 1\. Albert has July, so he knows all the days Bernard could have been given have duplicates. Thus, he knows Bernard doesn't know the birthday yet.

2\. Bernard hears this and knows Albert is holding on to either July or August. He holds a number that is unique within these 2 months. That is why he now knows the birthday.

3\. Albert now knows that Bernard knows, and thus has a day that is unique between July and August. Which means it cannot be 14.

4\. So among July 16, August 15, and August 17, the only way Albert can know for sure is if he is holding on to July.

Therefore July 16.

</comment><comment><USER9> They all have communication issue, or they use too much gadgets as they have lost their social skill.

</comment><comment><USER10> apparently they need to focus more on English than math</comment>


Ask HN: How to teach a 20 yo Marine how to code? - <AUTHOR> My nephew just finished his Marine training as a reservist.  He said to me that he is probably going to take his uncle's advice and learn to program.
I tried to get him to learn back in high school using this free book that used text based games in Python.  He was able to get each example working back then.
What books or online courses would you suggest he use now to quickly learn programming.  His goal is to get a job programming as soon as possible. <comment><USER2> My 2 cents. He needs to pick a language and learn it. It honestly doesn't matter which one, everyone has their passion language or preferences. But in reality, learn Python, JavaScript, Java, C#, C/C++ almost anything. I'd personally, probably push him towards Python, C# or maybe even Ruby. Partially it would depend what he thinks he wants to do though too, e.g. create websites, or graphics programming, simulation programming or games etc. I'd also give him any good SQL beginners book, it never hurts to understand how to query and work with SQL data.

As for getting a job soon. He needs to get some time to become reasonably proficient in at least one language, which means likely 6+ months of practice and some serious dedication. I can't imagine someone not having at least that before trying to apply for JR dev jobs. Everything depends on his ability and aptitude for development work though. But when he does try to apply, he needs to be realistic and apply for JR positions likely on larger teams so he can be mentored. Startups and small teams just don't usually have the capacity to train and keep up their work.

There are no magical books in my opinion, some are better then others, but frankly pick any book up and work through it. The reality is when you are learning it is best to have 2-3-4 different books that approach things differently so you can learn. It helps to do things wrong and figure them out. Have him join StackOverflow for questions and research, find forums that focus on the language he chooses and get active there.

Don't try to learn to many different languages at once, stick to 1 + SQL. I suggest SQL because it has the most widespread appeal on enterprise and large teams that he'd likely have some possibility to get on. Then expand from there, but remind him to be realistic just because you work with a language for 6-8 months that does not mean you are an expert. It takes years to truly master a language and even then "experts" still learn or find new ways to use the language and push it that no one saw before.</comment>


SHA-3 to Be Announced - <AUTHOR> http://www.schneier.com/blog/archives/2012/09/sha-3_will_be_a.html

<comment><USER2> I implemented the Skein hash in a crypto class at my uni. What is remarkable about that hash is that it has a "hash tree" mode which provides an interesting opportunity for parallelization and doing hashing of partial data. In contrast, many traditional hash algorithms are inherently sequential by nature.

On the other hand, as Mr. Schneier points out in the article, the Skein hash utilizes a modified Threefish block cipher, while many of the SHA-3 contestants were AES-based (edit: seems like none of the finalists are). Now we have a hardware AES implementation shipping in mainstream processors, so it gives an edge to the AES-based hash functions out there.

edit: I went through the list of finalists and it seems none of them actually use the whole AES block cipher, although several of them use AES S-boxes or other parts of AES.

<comment><USER3> I believe they worked towards speed mostly and whilst AES is in alot of hardware the basis of there design was to be hardware independant and with that in mind you can see why no design bias was placed upon what is or not currently enabled in some hardware. In a world were we still have no standard in ragards of BIG or LITTLE ENDIAN then you can see they took the right approach.

Only aspect that Mr Schneier has not highlighted and which you touched upon is that some of the hashing finalists are faster and in that they will in brute force comparisions be not as good. That is another consideration, albeit one of limited time as you already said AES is now in some hardware as instructions and how long since AES being a standard has that taken.

But the whole ability to work on partial blocks and that is what you need to do to gain from parallelisation does open up a while new ballgame in modifiying hashed code and returning the same hash. Now if you can pick a partial block size and then do a brute force test modifying from 0-FF each byte of the block incrementaly for the every permutation and only get a match on the original then that will by design be the one I'd be picking, i'm sure they will be testing each parallel finalist in that way. But personaly if they all pass that test then why pick one winner and have them all as part of the standard SH-3.[1-5]. After all if they all work well then having the choice can only add to the entropy we call security these days.

<comment><USER4> Again: the "brute force" thing you're mentioning here is a non sequitur. It's akin to suggesting that Intel should manufacture slower chips to make passwords hard to crack. Hash functions should be as fast as possible; it's the job of a KDF construction to slow the process down to resist brute forcing.

<comment><USER3> It's the aspect of being able to change part of the data and only have to brute force that part of the data so if you have a block of data that you can modify and rehash check until you get the same hash you have a whole new issue with hashing by design of being able to work on partial block and paralise things. No I'm not suggetsing intel should make slower chips, I am suggesting that any design of hashing that allows you to modify a small part of the entire lump of data/code and you only have to recheck the hash of that small block instead of the entire lump of data/code then even if they hashing of X bytes took the same or even slower than SH-2 you will still by design induce a weaker system that is open to a easier attacks than any system were you have to rehash the entire block of data sequentualy. Nothing to do with KDF!

<comment> ryan-c It is trivial to create constructions where changing a single bit of the data requires recomputing the hash over all of the data. A really simple option to that end is to feed the hash back into itself multiple times. Please go read a paper on PBKDF2 and/or scrypt - they are designed to work with an arbitrary hash function be impossible to parallelize.

<comment><USER3> ok read about PBKDF2 and what your desfribing/on about is key stretching or hash feedback cycles and is a great appraoch to take for what it does. Though for what I was on about it would still be a case of working out the hash for a smaller part than the sum of the entire data, but as I have thought though. If you stripe the data blocks across the sum of the data then the ability to modify a small part of the data would still result in you taking just as long to work out the hash for the entire sum of data. It is when blocking is done in contiguous blocks (100 byte data block 1 is bytes 1-10, block 2 is 11-20 etc) then is were you have the issue I describe and yes what you say about hash feedback is correct in that for any block it will add a extra time factor but it will still be less than the entire lot of data and if you can erhash 10 bytes instead of the entire 100 bytes it can only be quicker. But if those blocks are stippped then you would get the best of both worlds and have the ability to parallise your hashing without fear of being any weaker by design, but thats only if you stripe the data blocks you paralise and not if you use contiguise blocks. I'll have a good read of these finalists and more over the weekend for this, though far better brains than I wrote them so I expect this is me just learning what they already know.

<comment><USER5> Zenst - it sounds like you have a lot of interest in cryptography, and your lack of familiarity with PBKDF2 and friends suggests that you have just entered this space.

I highly recommend <https://www.coursera.org/course/crypto> as a great introduction into some of the more interesting elements you are working through.

<comment><USER3> Thank you and signed up. I have interests in too many things that cross over, but this is one area I do need to step back a bit and learn the lingo a bit more. Looking forward to this course now.

</comment></comment></comment></comment></comment></comment></comment></comment><comment><USER6> I'm a bit surprised that Schneier is advocating for "no award". Even if the SHA-3 candidates are not fundamentally better than SHA-512, we really do need a standardized algorithm that has built in protection from length extension attacks.

<comment><USER7> Is there something about HMAC, which can augment any hash function, that makes it insufficient for the task?

<comment><USER4> Yes. HMAC is very slow. Also, length extension is a pernicious and scary little property to have lurking around your crypto designs; you want it gone.

</comment></comment></comment><comment><USER8> I think NIST should have a big Apple-esque unveiling event for new crypto. I for one am that excited about SHA-3.

<comment><USER9> That's a good idea.

There's a risk of creating hype among people who don't know enough to be able to make a decision, but who do have power to make that decision.

(<http://dilbert.com/strips/comic/1995-11-17/>)

<comment><USER10> I can envision a great Samsung-ish commercial about waiting in line to get the new hash - one of you creative types could have fun with that spoof (of a spoof)

</comment></comment></comment><comment><USER3> Interesting that the reason for SHA-3 has been missed in that the finalists offer no better way to hash with the main difference being some are faster and some slower than the best SH2 variations.

What does this mean, well in effect no extra value is being directly offered, sure some have extra abilities by design like being more able to liberate parallel processing by sbeing able to split the data to be hashed into chunks and work on partial blocks of the final data and use the results to get the final hash result. That is nice.

But when it comes to brute forcing then being faster works against you, also the ability to work on partial chunks of the data allows you to modify the code and rechecking the partial hash for the part your changing until you get the same result, this alows you to do nasty things to code and get the official hash answear alot easier than having to rehash the end result every time and getting the same result or modifying the code to get the same result (usualy have area you jump over all nop and modify that to influence the hash, but more sane ways to do this but offtopic).

So in essence any hash that can be run faster in any way will make it weaker in terms of brut forcing (yes I know people assume there passwords will be the last one on the list to be checked bia brute forcing and assume if it takes 10 years to test all variations then there password is 10 years strong, you see the flaw in mentality there).

Now NIST still have an opertunity here and it is a simple, tried and tested approach and that would be to have all finalists winners and have them all in the standard as variations. This then allows end users/admins to pick there variation of choice or even perish the thought allow mixed usage so say your /etc/password file could have some users using one variation, others using another, etc. Whilst it add's no obvious extra benifit, it will allow more variations and in that fallbacks/choice and that is what n BIT encryption/hashing is all about, each bit being a choice in a way.

So in summary I believe NIST should let them all win and have SH3.n with n being the variation of finalist, let them all win, choice is good and that is what n bit encryption is after all, extra choices.

<comment><USER4> Ugh. Being faster does not work against secure hash functions! Holding all else equal, faster is invariably better.

What you're thinking of are _password hashes_ , which are a variant/application of key derivation functions (KDFs). KDFs often use secure hash functions, which is where the confusion comes from.

You want your core crypto to be as fast as it conceivably can be, because you want to be making progress towards a state where all communications are encrypted by default.

<comment><USER3> In some instances yes faster is always betetr and take AES, whilst initialy was slower, now that it is enabled in hardware it is now alot faster.

The point I was making is that it is a concideration and the general mentality is that the larger the version number then the better it is and a point the original article was making in that none of them are any better than what is on offer with regards to security. Its is tha aspect of being able to get a large hashed file and modify part of that file and recheck just that partial HASH without having to rehash the whole thing. This for comminucations starts to open up a faster way to modify encrypted communications as by changing a small part you only have to rehash that part and know the final block is still ok. This is a area which makes by design any hash function can work with partial blocks, less secure.

So fast is good but it often comes as a compromise against security and any new standard should at least be better than what it is designed to replace and not open up whole new avenues of attack.

<comment><USER11> > was making in that none of them are any better than what is on offer with > regards to security

In this case, possibly. It is quite clear by now that SHA-1 and MD5 are flawed, so the 'higher version' SHA-2 variants (especially the bigger ones) should be preferred.

> So fast is good but it often comes as a compromise against security and any > new standard should at least be better than what it is designed to replace > and not open up whole new avenues of attack.

Brute force attacks against 512 bit hashes are not practical today, and won't be practical for a long time. The concern with password storage is seldom pure brute force attacks, but rather attacks against a dictionary. This is because, for password storage, the input entropy is typically much less than 512 bits (or even 128 bits). It's a completely different use case.

> Its is tha aspect of being able to get a large hashed file and modify part > of that file and recheck just that partial HASH without having to rehash the > whole thing.

Is this an argument against hash trees? Can you explain more about the this potential attack? It seems to be to be equivalently hard to finding preimages.

<comment><USER3> >Is this an argument against hash trees? Can you explain more about the this potential attack? It seems to be to be equivalently hard to finding preimages.

If you only have to rehash a branch as apoosed to the entire tree and match hash's then you have a easier time as it is alot faster by design.

Now if the way the hashing work is that only say 1234567 will get the hash value 11 and no other variation then i will have no issues and welcome this as a great achievement and pure brilliance. But I dont feel this is the case and nor could it be by reducing any large amount of entropy into a shorter definition and that is what a hash function does after all and one hash value will match more than the original data.

<comment><USER3> Actualy if you pick the block to paralise striped (ie 100 bytes and block 1 is every 10th byte so byte 1,11,21,31... and block 2 is 2,12,22,32....) then the ability to modify the code/data in any nefarious means would be as hard (if not harder ) than having to rehash the entire lot.

The only issue with this approach of blocking is that it works on all the data and as such would for example be no use for streaming which is a terrable exmaple but you get the idea.

</comment></comment></comment></comment></comment></comment><comment><USER12> djb thought in March it was going to be Keccak:

<https://twitter.com/hashbreaker/status/183552364953878528>

</comment><comment><USER13> Schneier picked a very misleading headline here. I was wary when I saw that the NIST page he links regarding the timeline still hasn't been updated since June, and then I saw him reply in the comments:

 _" > When will SHA3 be announced? Were you given special information the rest of us don't have access to?_

 _I have no inside information on when SHA-3 will be announced. My guess is that they've made the decision, and are going over the final rationale again and again. My guess is that it won't be Skein."_

Even though this is the original title, I'd prefer the HN title be edited to something about Schneier hoping NIST will pick no SHA-3.

</comment><comment><USER3> Out of interest these hash functions can be implemented in very few bytes with 100 being mooted for this skien hash. With that in mind when it comes to brute forcing I do wonder if it would be possible to just brute force a better solution easier than brute forcing a hash, I say that in jest.

But it does make you reliase how much empressive stuff you can do in just a few bytes and what else is out there.</comment>


Ask HN: How much does a Machine Learning Engineer PhD earn in silicon valley? - <AUTHOR> I am a considering job offers for Machine learning engineer/ Data scientist positions in silicon valley (mostly startups).
With a CS PhD, and a few years of postdoctoral experience, I am trying to figure out my fair compensation.
What range of compensation should I expect from startups (series A or B) in silicon valley given that I have a very related background but no industry experience? <comment><USER2> email me: firstname.lastname@example.com I have a childhood friend at Apple doing machine learning. Maybe he will tell you what he makes and give you some hints as to how he got the gig.

</comment><comment><USER3> $300K-500K, and more, if you can show your value.</comment>


When you split the brain, do you split the person? - <AUTHOR> https://aeon.co/ideas/when-you-split-the-brain-do-you-split-the-person <comment><USER2> Dualism is wholly wrong. There is no mind-body split. Even speaking of 'the brain' is just a rough convenience. Individual neurons stretch from that tangled mass of them up in your skull all the way down your spine and to the soles of your feet. Every nerve fiber extends from nearly every point in your body right into your brain. Perception pours in from every point, and it is all extremely important. Emotion, for instance, primarily arises from biofeedback. Remove the feedback of feeling your 'expression' of emotion and you will cease to be capable of 'feeling' that emotion.

Consciousness is not a 'thing', it is a property. Thus far we know of only one sort of system that can hold the property (human beings in our environment) although we do gain some information from observing humans of different configurations (such as seeing that people with total facial paralysis experience significant emotional dulling and substantial changes to their subjective personal experience over time) that hints at what things are important for different aspects. So far as we have evidence for, there is no reason to think that you might be able to, for instance, simulate solely a brain and have anything akin to consciousness. Just removing patterned sensory input from a typical person via sensory deprivation quickly results in their consciousness dissolving. So how a brain without a body and without an environment to perceive might ever have a hope of consciousness I've no idea.

<comment><USER3> > Consciousness is not a 'thing', it is a property.

But if consciousness is only a property that doesn't influence the actual physics, then how are we even able to talk about consciousness? Why would it occur to physical beings that something like consciousness exists?

<comment><USER4> Not sure what that question means. An ocean wave is something that emerges from the basic laws of physics, but its not actually a "thing", its just a bunch of water exhibiting a property. The only difference between that and the human mind (and properties of it like consciousness) is the level of complexity and thus completeness of our ability to model it. The mind is a wave in an ocean of brain.

<comment><USER3> Ok, so by "not a thing" you mean "abstraction", rather than something which does not physically exist.

<comment><USER5> It's a philosophical question about when does something begin to exist vs. it is just an abstraction comprised of constituent parts.

[https://plato.stanford.edu/entries/material- constitution](https://plato.stanford.edu/entries/material-constitution)

</comment></comment></comment></comment></comment><comment><USER6> Here's a thought experiment.

Say you had more than one RNN trained for the same task (say, generating text). How would you couple them?

You could just, character by character, have each RNN generate its output on its own, and then take a majority vote or do some weighted average to combine the output, but otherwise let each RNN operate independently. But wouldn't it be strange for those RNNs whose output was not ultimately selected to continue processing along the same lines, uncorrected by what was actually selected?

Another possibility is to include a "ultimately selected" input to each RNN so they can be privy to the group's decisions. Yes, your internal state said that "e" should be selected, but the group selected "r"\- what will you do now?

Yet another possibility would be to perform "retroactive justification". Let us say that one RNN (with an internal state S) selected "e", but the group selected "r". Under retroactive justification, the state used for the next character is a state (maybe the one closest to S) that would have instead produced "r" as output.

Split brains are coupled by their shared access to the body and act within the same environment. How do the hemispheres use that coupling?

<comment><USER2> Unlike the metaphor you suggest, in the body decisions are not made by vote. Each half the brain controls particular pieces, with the other not participating. A closer metaphor would be separate RNN which each determine one bit of the response, with the response being observed by each.

</comment></comment><comment><USER7> >How does a brain, consisting of many modules, create just one person?

The same way a population, consisting of many people, creates just one state? The state is not the people and the people are not the state, yet both exist.

<comment><USER8> But a state isn't conscious

<comment><USER7> By what metric do you make that declaration? I submit that any empirical model of consciousness applies equally to states as it does to human minds.

<comment><USER9> If complexity is consciousness, then NYC's sewer system is conscious too.

<comment><USER10> No one said that complexity is consciousness.

<comment><USER9> A lot do. E.g. Tononi's IIT.

<comment><USER10> Let me rephrase. No one _here_ said that complexity is consciousness. In particular, AnIdiotOnTheNet, who you replied to, did not say that complexity is consciousness.

Also, tangentially, New York's sewers aren't that complex compared to even a rat's brain.

<comment><USER9> Let me rephrase. No one here said that complexity is consciousness. In particular, AnIdiotOnTheNet, who you replied to, did not say that complexity is consciousness.

>Let me rephrase. No one here said that complexity is consciousness. In particular, AnIdiotOnTheNet, who you replied to, did not say that complexity is consciousness.

Not directly. If not complexity, is it a kind of computation or something physical that makes neurons produce consciousness? Those positoins are more tough to support.

> Also, tangentially, New York's sewers aren't that complex compared to even a > rat's brain.

What is the magic measure and what is magic threshold using that measure?

What about a future city's sewer system that is complex enough?

<comment><USER10> I'm not sure what your intent is here. "Sewers are conscious" seemed to be a reductio ad absurdum but now you seem to be arguing that complexity is consciousness. Regardless, I haven't proposed any mechanism for consciousness to arise so I don't have any "position to support" there.

</comment></comment></comment></comment></comment></comment></comment></comment></comment><comment><USER11> > But without the corpus callosum the hemispheres have virtually no means of > exchanging information

They can communicate physically though. Each half of the brain can access the eyes and control various parts of the body, they could make the body do things that they could see/hear in order to act as a basic messaging channel. The conscious part of the brain could be completely oblivious to these subtle physical channels.

<comment><USER12> Not sure what would be the evolutionary purpose of that. I doubt that many of our ancestors survived brain split and managed to reproduce in order to pass the genes, so having that feature would probably mean it's necessary for something else... sounds like a long shot for me though.

<comment><USER7> I think what is being suggested is not that it is a special function that only occurs in the case of the corpus callosum being split, but that these other communication channels are always operating regardless and the corpus callosum is specialized channel for certain kinds of information. Speculating based on the article, one would suspect that it allows for fast integration of visual information, but that other integrations rely on other, probably slower, channels.

<comment><USER13> The Corpus Callosum isn't the only interhemispheric commissure though, there are several more. The anterior and posterior commissures, as well as the Fornix etc.

</comment></comment></comment></comment><comment><USER14> Is he saying that the papers/experiments of Sperry (for which he won the Nobel Prize) were not reproducible? They only tested two new patients. How rare are split-brain patients? (I assume very rare indeed if they could only find two subjects).

<comment><USER15> I imagine the neurosurgeons doing it to reduce epilepsy also want to preserve as much connectivity as possible, so total severance of the tissue between the hemispheres may be rarer in present population of splitbrain patients as their technique improved?

</comment></comment><comment><USER16> Fascinating subject. Much more is address in Iain Mc Gilchrist's book

"The Master and his Emissary : the divided brain and the making of the western world"

[http://iainmcgilchrist.com/](http://iainmcgilchrist.com/)

ps: put short, the book explains how pop psychology belief that left is maths and right is arts (you get the idea), was wrong, and yet.. there is a physiologically noticable difference as well as observable differences in how each hemispheres processes reality. In short, each hemisphere attends to the world with a different kind of attention, left is narrow and focused for what we commonly see as intellectual acvitivites, left deals with a map of the world. Right hemispheres takes the world as one whole, it's broad attention required to survive in our environment, but it's also necessary for empathy, etc. The book then tries to show how the over relianceo n our left hemisphere in today's world has roots in the last few centuries, and that perhaps it is not in our best interest. BOTH hemispheres are always needed, but we are increasingly acting in the world from the left hemisphere (hence the book title "the master and his emissary").

</comment><comment><USER17> Video illustration of the previous experiments mentioned in the article:

[https://www.youtube.com/watch?v=wfYbgdo8e-8](https://www.youtube.com/watch?v=wfYbgdo8e-8)

</comment><comment><USER18> > the current understanding seems to only deepen the mystery of consciousness

Not sure I understand that.

What they appear to have established is that, if you sever the direct connection between the two brain halves, functions that required the direct communication between the two halves is impaired.

I mean, it's interesting to note what those functions are and the severity of the impairment. But there doesn't appear to be any effect on consciousness at all; at least not in the article's description of the effects. Am I missing something?

<comment><USER19> I think that's the point. The previous work referenced in the article seemed to indicate something _much_ MUCH more profound.

</comment></comment><comment><USER3> Conversely, when you combine two brains, do you "merge" the people?

<comment><USER20> [https://en.wikipedia.org/wiki/Krista_and_Tatiana_Hogan](https://en.wikipedia.org/wiki/Krista_and_Tatiana_Hogan)

<comment><USER21> Wow.

"There is evidence that the twins can see through each other's eyes due to brain conjoining."

</comment></comment></comment><comment><USER22> This is part of the philosophical problem of identity. Is there a non-physical part of the mind? If you duplicate a body by cloning, matter relicator, or exact uploading into a computer, do you have multiple persons or souls? (Star Trek explored several variations) Does [any part of] the mind survive death?

</comment><comment><USER23> The thing that has stuck with me is the career test that was given to someone with a split brain, and one side wanted to be a racecar driver and the other wanted to be something completely different. [1]

[1] [https://www.psychologytoday.com/blog/the-superhuman- mind/201...](https://www.psychologytoday.com/blog/the-superhuman- mind/201211/split-brains)

</comment><comment><USER24> There is a video about a split brain patient (somewhere), while they are shopping. The left hand might put a box of cereal into the shopping cart, but the right hand puts it right back on the shelf. I wish I cod find the video.

</comment><comment><USER25> > The brain is perhaps the most complex machine in the Universe.

That's when I found how useful a 'perhaps' can be. LOL.

</comment><comment><USER26> > The brain is perhaps the most complex machine in the Universe

Do you really know what's there in the entire universe?

<comment><USER27> No, hence "perhaps". The meaning and intent of the sentence is entirely clear so I don't really see what good this sort of pedantry does.</comment></comment>


Use the Surrender Tactic: Frustration when debugging - <AUTHOR> http://kedyr.wordpress.com/2013/03/30/use-the-surrender-tactic-frustration-when-debugging/

<comment><USER2> When I was learning to code C, I would often spend all night trying to chase down a bug, then finally go to bed in frustration at 5 am. After a few hours of sleep, I'd look at the code again, and immediately see the problem. I would feel so stupid for missing it before. Surrender works. Or maybe debugging all night doesn't work...

<comment><USER3> A good night's sleep can get you a few dozen extra IQ points. Amazing how many bugs get solved by ideas that magically pop into your head while you're showering the next morning.

<comment><USER4> I sometimes solve problems _while_ asleep. I.e., I wake up just knowing the answer.

</comment></comment></comment><comment><USER5> I have a sense of when I'm getting closer to a bug. As long as I'm making progress I won't stop until I found the bug. That's not wasted time. If you need two hours to do this, then you spent that two hours working on the bug.

On the other hand if you spend a lot of time with no progress, then maybe you should stop and come back to it later, depending on priority, etc.

</comment><comment><USER6> I just solved a bug in someone's CUDA agent based modelling library which caused a runtime error when compiling for a more recent CUDA compute architecture. The actual bug was due to the more recent architecture enforcing pointer alignment, while the older implementations just ignored it. My fixing of the bug, created other bugs (largely due to my lack of CUDA experience)and I eventually solved it by coincidence when applying my fixes from a reset across the whole code, rather than at a local level.

I may have made no progress towards the task in these 2 full days I spent working solving this issue, however I have greatly improved my CUDA programming knowledge and debugging technique, which I would have otherwise never done, so when I inevitably reach another bug It should (hopefully) be much quicker for me to solve.

<comment><USER7> Ah, pointer alignment bugs...I remember this being a big thing when porting C code from the X86 to the Alpha.

</comment></comment><comment><USER8> You can also avoid getting frustrated by using a more test driven development. Incrementally write code, then test (could be just printf-ing), then chances are that the bug is in the last chunk of code written.

<comment><USER9> I am working on a project that aims to standardize the use of bisection to narrow-down and arrive at root-cause of bugs. One approach is to run regex on your output logs to determine what modules are running into issues. check out <http://bisect.cc>

<comment><USER10> what are the differences between a vanilla `git bisect`

</comment></comment></comment><comment><USER11> If you use a version control system, write a test case and bisect (as in git- bisect(1)) to find the root cause.

</comment><comment><USER12> 5 days to fix a bug! Jesus, write better code, write tests, with good logging. Break your code apart into testable modules. Test you hypothesis from he ground up. If you can't localise the bug quickly there is something wrong with your methodology. You need to use a debugger. Clearly you are trying to debug a house built on sand. I find this is a common problem. People don't realise 80% of your time is spent debugging and checking your assumptions. If you are writing reams of code before checking your assumptions than you pay quadruple cost. The first thing I do when building a big data processing project is think about how I am gonna debug it first. Invest tons of time at the beginning getting readable output in a console. I have gone as far in some projects to output trees and grids in ASCII art to visualise data structures (in the console). I have never spent 5 days debugging a bug since university. The days spend at the beginning of the project making the debug output as good as possible pay for themselves a hundred times over.

<comment><USER3> Sometimes bugs are genuinely hard to debug and appear in hostile environments. Many people who have been programming for a long time have seen bugs that take much longer than five days to debug. For example:

\- The bug doesn't reproduce when run under the debugger (not so uncommon with C code). Or the bug goes away when you change the timing of the code by writing to a log file.

\- The bug could be in code that you didn't write and don't yet completely understand; the people who wrote the code have all left the company.

\- The bug can be in a third-party library that you don't even have the source code to. You can only infer what the library is doing by seeing how it reacts to what you're passing it. Or you can try disassembling its code.

\- The bug can be due to bad machine code generated by a compiler.

\- The bug can be due to undocumented behavior in an operating system.

\- The bug could be in a really complex algorithm.

\- The bug might only reproduce at a customer's site with the customer's confidential data.

\- The bug might be sporadic, perhaps depending on certain patterns of network traffic.

\- The bug could be due to a fundamental misunderstanding of the original project requirements that will only become apparent after days of investigation.</comment></comment>


Rust 0.10 released - <AUTHOR> https://mail.mozilla.org/pipermail/rust-dev/2014-April/009387.html <comment><USER2> Highlights (no particular order, partially reflects my personal interests):

\- Managed (GC-ed) pointers are moved to the standard library. There is no special syntax (formerly `@`) nor special header (for vectors containing managed pointers) required.

\- Special treatments on `str` and `[T]` vectors are being generalized ("Dynamically Sized Types").

\- Lifetimes of temporary expressions have changed in somewhat more intuitive way.

\- Syntax extensions are now exportable, documentable and much more flexible ("procedural macro").

\- Language simplifications: `do` syntactic sugar is removed, `priv` is now default, no trait bounds by default (e.g. formerly `:Send` was implied for `~Trait`).

\- The smart pointer usage has been improved with new `Deref` and `DerefMut` traits.

\- There are now many auxiliary standard libraries instead of a single `extra` library.

\- Usual library fixes, redesigns and influx took place. Most prominent change is an introduction of growable vector type, `Vec<T>`, which subsumes the original `~[T]` type.

\- Rustpkg is gone, long live Cargo! Rustc has also combined many related options into umbrella flags (e.g. `-C`).

As prior point releases of Rust did, Rust 0.10 does not represent a significant milestone. It is always recommended to use the most recent development version (master) of Rust, but it had been a great undertaking to compile Rust from scratch. From 0.10 onwards, however, there are official nightly versions [1] and brave souls can play with master more conveniently now. (They are currently not signed yet, so take that in mind.)

[1] [https://mail.mozilla.org/pipermail/rust- dev/2014-March/00922...](https://mail.mozilla.org/pipermail/rust- dev/2014-March/009223.html)

<comment><USER3>
      > Managed (GC-ed) pointers are moved to the standard library.

_Most_ uses of the old managed pointer scheme have been excised, but not all just yet (though we have people working on it with great vigor and tireless devotion). They're behind a feature flag though, so it's not possible to use them by accident.

For example, note that the replacement type in question, std::gc::Gc, is still internally backed by the old managed pointers, although this will not be the case once we finally implement a proper garbage collector. And even then if you really need multiple owners of a single value we'd really prefer that you use our reference-counted pointer (std::rc::Rc) instead, along with weak pointers (std::rc::Weak) if your data has cycles. Reference counting in Rust is generally surprisingly cheap, since the refcount only gets bumped if you explicitly clone the pointer; otherwise the pointer simply gets passed around as an owned value.

</comment></comment><comment><USER3> Congrats to all developers on the release! Here's a selection of some of my personal favorite changes in this release cycle:

* Automatically-generated nightly binaries for all first-tier platforms [1]

* Switching the default hashmap over to Robin Hood hashing [2]

* Turning on native threading by default, in lieu of the green thread runtime [3]

* The removal of conditions in favor of a standardized type for returning I/O results, which will (by default) generate a warning if the result is ignored [4]

* The extension of the lifetimes of temporary values, which should greatly reduce the occasions where you have to assign a name to a temporary result in an effort to please the compiler [5] [6]

And if you're thrown by the idea that version 0.10 follows version 0.9, know that _I_ voted for 0.A (alas). 1.0 is still expected for later this year, though no promises!

Remember, Rust 1.0 is _not_ the milestone when the language is finished, but rather the milestone when backwards-incompatible changes to the language will no longer be made. See the "backcompat-lang" tag on the issue tracker for a list of outstanding blockers. [7]

[1] [https://mail.mozilla.org/pipermail/rust- dev/2014-March/00922...](https://mail.mozilla.org/pipermail/rust- dev/2014-March/009223.html)

[2] [https://github.com/mozilla/rust/pull/12081](https://github.com/mozilla/rust/pull/12081)

[3] [https://github.com/mozilla/rust/pull/12833](https://github.com/mozilla/rust/pull/12833)

[4] [https://mail.mozilla.org/pipermail/rust- dev/2014-February/00...](https://mail.mozilla.org/pipermail/rust- dev/2014-February/008505.html)

[5] [http://smallcultfollowing.com/babysteps/blog/2014/01/09/rval...](http://smallcultfollowing.com/babysteps/blog/2014/01/09/rvalue- lifetimes-in-rust/)

[6] [https://github.com/mozilla/rust/pull/11585](https://github.com/mozilla/rust/pull/11585)

[7] [https://github.com/mozilla/rust/issues?direction=asc&labels=...](https://github.com/mozilla/rust/issues?direction=asc&labels=P-backcompat- lang&milestone=20&sort=created&state=open)

<comment><USER4> >* Turning on native threading by default, in lieu of the green thread runtime [3]

Curious about rationale for this. Have details?

<comment><USER3> The switch was inspired by this mailing list thread back in November: [http://thread.gmane.org/gmane.comp.lang.rust.devel/6479](http://thread.gmane.org/gmane.comp.lang.rust.devel/6479)

<comment><USER5> A select quote:

> Memory mapped I/O is also an incredibly important feature for I/O > performance, and there's almost no reason to use traditional I/O on 64-bit. > However, it's a no-go with M:N scheduling because the page faults block the > thread.

This is more or less why Java switched to native threads a decade and a half ago. Although in that case, it was page faults from hitting swap rather than memory-mapped IO. And in both cases, compatibility with existing native code which makes blocking system calls was also a consideration. It's reassuring that Rust is following a path well-worn by other serious languages.

Now it's just a question of waiting for Go and Node to do the same.

<comment><USER6> Google has been pushing for performance improvements in native threads for a similar reason. If that's successful, I think the plan is for Go to switch too, but I can't find any links about it atm.

<comment><USER7> [https://www.youtube.com/watch?v=KXuZi9aeGTw](https://www.youtube.com/watch?v=KXuZi9aeGTw)

That might be the talk you are thinking about. I am keeping an eye on this. If we can have our cake and eat too w.r.t green threads and performance I will be very happy.

</comment></comment></comment></comment></comment></comment><comment><USER8> I must have misunderstood what was changing in rust re: pointer types. My understanding was that managed boxes using the sigil @ were being removed, and GC moved to the standard library std::rc::Rc.

When I last read the tutorial, I read master instead of 0.9, and thought that the existence of the managed box in the tutorial was only due to it not yet being updated. But the 0.10 tutorial retains references to managed boxes using thee sigil @.

Is the tutorial not yet updated? Did @ not get removed from the core in time for 0.10? Or did I just misunderstand what is actually happening?

<comment><USER9> Most likely the tutorial didn't get updated. It doesn't get a lot of love.

kibwen already posted[1] more details about @ in Rust 0.10, but the short of it is, @ still exists but is gated behind a feature flag. Code that uses it is still being updated. The functionally equivalent replacement is std::gc::Gc, but you should consider std::rc::Rc for reference counting instead (which supports weak references).

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

<comment><USER8> > Most likely the tutorial didn't get updated. It doesn't get a lot of love.

Ah, that's a shame. I actually just mentioned the tutorial as an awesome resource in another comment.

Maybe my understanding of the Rust language isn't as good as I thought it was, as most of it comes from reading the tutorial and the related guides linked at the end.

I'm a big fan of high quality documentation, and I assumed since the current tutorial was so well written, it was being handled actively already. This is actually one area I would love to step up and help Rust with. I've previously gone so far as to read some of the compiler implementation, but my experience with programming languages is still stuck in the interpreters stage, so it didn't get very far.

<comment><USER10> The _guides_ are up-to-date and maintained, but the tutorial itself is long, bulky, and ill-maintained. There is a contractor working on rewriting it.

</comment></comment></comment></comment><comment><USER11> Is it safe to start learning and using Rust for hobby projects or should I wait until 1.0?

<comment><USER12> Yes, lots of people have started using Rust for hobby projects [0] and their feedback has been invaluable to the development of the language.

[0] [http://rust-ci.org/projects/](http://rust-ci.org/projects/)

<comment><USER13> Will there be any impact on Rust due to Brendan Eich quitting Mozilla?

How much involvement did he have on the project?

<comment><USER14> Brian Anderson said it better than I could:

Brendan's resignation as CEO will have no effect on Rust or Servo.

Many people at all levels of the organization are huge supporters of Rust, Servo, and Mozilla Research in general.

</comment></comment></comment></comment><comment><USER15> So how easy would it be to use Rust to compile libraries to be called from non-Rust systems?

I've seen reference to using #[start] and #[no_std] but it wasn't clear with the latter just how much of "std" I'd be giving up? Hopefully that would mean just giving up task spawning and inter-task communication (ok), or would it be everything under the std namespace (not so ok)?

Making this easy would be an easy win to get Rust into active use incrementally. Rust would for example be able to do heavy lifting in computations with Python/Cython providing a web front end dispatcher.

<comment><USER16> If you just link some rust code into a C program without #[no_std], once you call anything that makes use of the runtime, it will abort with a lovecraftian error message and a stack trace because it asserts that the runtime exists and has placed some info into thread-local storage. It'll run until then, though!

If you'll only call into rust from a single C-created thread, you could start that thread through a shim that starts up the rust runtime. Rust code can then spawn its own threads in there and all of std might just work.

<comment><USER17> I don't think #[no_std] has any effect here, other that guaranteeing that know runtime-using functions are called (by not linking in any runtime at all).

I believe you can also just start runtimes in each call into Rust. Obviously it won't be particularly efficient.

<comment><USER16> That's what I meant re: no_std, yeah.

Would it be possible to lazily start libnative if a call into the runtime is made but there's none there, but then keep it running for that thread for subsequent calls?

<comment><USER17> Maybe? The current design is starting a runtime is a blocking call, though, i.e. I think you'd call `native::run`[1] and run anything needing a runtime inside that (I haven't experimented with this part of our FFI in detail).

[1]: [http://static.rust- lang.org/doc/master/native/fn.run.html](http://static.rust- lang.org/doc/master/native/fn.run.html)

</comment></comment></comment></comment></comment><comment><USER18> I love that the Install button gave me an .exe directly - has it always been like that? I don't remember it being this easy the first time I looked at Rust. Kudos.

<comment><USER18> Oh well it isn't that easy:

        C:\Users\swah>rustc first.rust
        error: could not exec the linker `gcc`: file not found
        error: aborting due to previous error

</comment></comment><comment><USER19> What resources would you recommend for learning Rust? There's the official tutorial but I have to admit that the later parts of it go over my head a little bit.

<comment><USER14> Rust for Rubyists is a great resource I can vouch for (not just for Rubyists): [http://www.rustforrubyists.com/](http://www.rustforrubyists.com/)

<comment><USER20> I was disappointed in how little detail this went into on the different pointer types and how/when to use each one. IIRC, it doesn't even mention lifetimes, which are the feature that's currently stopping me from writing any rust code (because I don't know how to fix lifetime problems).

<comment><USER21> As far as fixing lifetime errors is concerned, I would recommend breaking your code down into a simpler form so that you can look at the lifetimes from a broader perspective. If you have a simple test case that mimics the same error that your main program has and you still can't solve it, you can simply make a gist for it and ask on the IRC and they usually are able to point out the error. In my experience with lifetime errors, doing it in this method sometimes reveals the simple error I was over looking, or in other cases after asking on IRC I learn something new about lifetimes.

</comment></comment></comment></comment><comment><USER22> Maybe somewhat rude question, but how close to being "ready" Rust is? I mean, should I start using it already if not only for the sake of language itself? How stable is it now? How much it will probably change 'till 1.0? How soon it can be expected to be "production ready"?

<comment><USER23> > how close to being "ready" Rust is?

I think that this depends on your expectations, I was quite disappointed to find that there isn't a clean way to make 'unit types' (second, millisecond, meters, etc) in Rust..

I wouldn't use Rust for anything but toy project..

<comment><USER24> > there isn't a clean way to make 'unit types' (second, millisecond, meters, > etc) in Rust..

Actually, there's this bit on Tuple Structs[1] in the tutorial:

> Types like this can be useful to differentiate between data that have the > same underlying type but must be used in different ways.

      struct Inches(int);
      struct Centimeters(int);

[1] [http://static.rust- lang.org/doc/master/tutorial.html#tuple-s...](http://static.rust- lang.org/doc/master/tutorial.html#tuple-structs)

</comment></comment></comment><comment><USER25> I've seen it stated a few times that after Rust 1.0 there will be no more backwards compatible changes.

Does that mean _ever_ , or just that it'll be stable for some time before people start considering a 2.0 to try and fix whatever warts are discovered from wider usage of 1.0+ ?

<comment><USER3> It certainly doesn't necessarily mean _ever_. Who even knows who will be leading the project ten years from now! But it _does_ mean that it will be quite a while before the hypothetical 2.0 where we could consider breaking backwards compatibility. How long "quite a while" will turn out to be, I can't say. But it will certainly be an improvement over the current situation, where the language breaks about once a week. :)

</comment></comment><comment><USER26> Wait, I don't understand these version numbers. Wasn't the previous release 0.9? I was expecting the new release to be 1.0, or 0.91, or something like that. Maybe this is standard practice for all I know.

<comment><USER3> Rust uses semantic versioning ([http://semver.org/](http://semver.org/)). The number after the dot is simply a minor version revision, and can increment without bound.

A 1.0 release of Rust is targeted for later this year. There will be at least one more minor version (0.11), and possibly more, before that point.

<comment><USER6> Unfortunately Rust is not actually using semver, which I always found confusing because they seem to be in support of it, and they even include a semver library in the core distribution. If they were following semver, this release would be version 0.10.0 (notice the patch version).

The point of semver is to stick to a standard, instead of every project deviating from common practice in subtly incompatible ways.

<comment> Tuna-Fish > If they were following semver, this release would be version 0.10.0 (notice > the patch version).

Actually, since they are doing backwards incompatible changes in every release, this version would be more like 10.0.0.

They are deviating from semver for now, I hope they get on it properly for 1.0.0 and beyond.

<comment><USER6> You are allowed to make breaking changes at any time if your major version is zero.

<comment><USER27> Right, because the semver "standard" is inconsistent in that particular way.</comment></comment></comment></comment></comment></comment>