Growing Unease as British Mutual Funds Block the Exit Doors - <AUTHOR> http://www.nytimes.com/2016/07/08/business/dealbook/growing-unease-as-british-mutual-funds-block-the-exit-doors.html <comment><USER4> I believe every fund has a clause like that in their rules, at least all the ones I've seen so far do: in case of exceptional lack of liquidity, or so many requests to get out of the fund that it would compromise the liquidity, the administrator is allowed to temporarily forbid getting out of the fund.

What these funds do is sort of similar to statistical multiplexing. They keep part of their assets as liquid stuff like cash or easy-to-sell government bonds, and the rest is longer-term stuff that takes more time and effort to convert into cash. Normally, requests to get out of the fund can use only the more liquid part, which will be gradually replenished from the less-liquid part. If there are too many people trying to get out at the same time, however, the more liquid part can get depleted, and were it not for that rule, the fund would be forced to sell the less liquid part at a loss, to the detriment of the remaining holders.

<comment><USER5> Although this is indeed how mutual funds work, there are other models:

[https://en.wikipedia.org/wiki/Closed- end_fund](https://en.wikipedia.org/wiki/Closed-end_fund)

Can't be redeemed, can only be sold on the open market to a new buyer - e.g., ADX.

[https://en.wikipedia.org/wiki/Exchange- traded_fund](https://en.wikipedia.org/wiki/Exchange-traded_fund)

Can only be redeemed for the underlying basket of stock (not cash), so the administrator doesn't have any liquidity problems to contend with - e.g., SPY.

Are these better, or worse than the mutual fund model? It's hard to say - <USER2> the closed-end fund setup, it's likely that they'd just end up with a deep discount to their nominal asset value in times of selling pressure, but at least you can still get out if you need to, and it creates a good buying opportunity for those with spare cash in tough times.

<comment><USER6> Even ETFs can have similar issues to mutual funds when the underlying asset is illiquid. ETFs will trade at an immense discount as the fund is sold faster than the underlying can be shorted. This happened to $JNK recently.

<comment><USER7> How long did that last? Longer than a day?

(Seems like a huge arbitrage opportunity, otherwise.)

<comment><USER6> It's not really accurate to call it arbitrage if you can't simultaneously short the underlying. You'll be looking at something (imo) not unlike pin risk. And just like pin risk...well, it's risky.

JNK wasn't as bad as I remember, according to the stats on Morningstar it had a discount of 1.15% at the worst.

<comment><USER7> I meant in a more general sense: it's closer to something uncertain like statistical arbitrage.

Thanks for looking up the numbers. 1.15% seems entirely reasonable compared to having your money locked up.

</comment></comment></comment></comment></comment></comment><comment><USER8> Am I misunderstanding this line:

"So far, the numbers are small enough. Of the 35 billion pounds, or $45 billion, invested in these funds, just under £20 billion has been affected."

What? More than half? And that's considered insignificantly small?

<comment><USER9> It's possible that the first part is a typo and should be trillion?

<comment><USER10> Total global wealth is $250 trillion. British mutual funds can't be one-fifth of it, no matter how well invested.

<comment><USER9> Thanks for the reality check. aab0 seems to have the right of it, they cite a different article that goes into more detail about the funds in question [http://www.nytimes.com/2016/07/07/business/dealbook/3-more-p...](http://www.nytimes.com/2016/07/07/business/dealbook/3-more- property-funds-halt-withdrawals-after-brexit-vote.html?ref=dealbook)

edit: I'm still wrong, but it seems British mutual funds are an appreciable fraction of total global wealth ([https://en.wikipedia.org/wiki/List_of_institutional_investor...](https://en.wikipedia.org/wiki/List_of_institutional_investors_in_the_United_Kingdom#Mutual_funds))

double ninja edit: that's not right. I don't really understand what the figures on that page are supposed to represent... anyone want to try clearing it up for me?

<comment><USER11> I will clear it up for you: The numbers on that page are meaningless and misleading.

Firstly, the AUM column in the table doesn't represent anything. It overstates their _global_ AUM by 2 to 20 times for the companies I checked.

Secondly, this is by no means an exhaustive list of institutional investors in the UK. There are, well, I don't know but there are a huge number of small nameless investors sitting in the UK investing private funds globally, that are not and never will be on this list and whose assets will never be known, only estimated.

</comment></comment></comment></comment></comment><comment><USER12> Reminiscent of the 2007 BNP Paribas suspensions that were some of the first indications of systemic failure:

[http://www.nytimes.com/2007/08/09/business/worldbusiness/09i...](http://www.nytimes.com/2007/08/09/business/worldbusiness/09iht-09bnp.7054054.html)

We are due for another credit heart attack. Private debt is too large (see Steve Keen's work) and there is no stomach for fixing it. Most economists don't recognize that that's the problem.

<comment><USER13> "The Big Short" Scion Fund managers restricted withdrawals, too.

[ [http://www.nytimes.com/2007/03/09/business/09insider.html](http://www.nytimes.com/2007/03/09/business/09insider.html) ]

 _Either way, chaos created opportunity and Scion investors might feel lucky that they were locked in the castle._

The subprime mortgage market finally imploded causing the Great Recession.

If you are confident of credit crisis, perhaps you can do your own shorting.

<comment><USER12> I'm fairly confident of one but, of course, timing is difficult and carry costs of short positions are high (they nearly killed Scion) so I prefer to simply wait out the market.

</comment></comment></comment><comment><USER14> This seems to me very analogous to preventing a run on banks. Traditionally retail banks would invest their depositors' savings in real estate by financing mortgages. Indeed - in England many banks are still called "building societies".

Depositors are in principle able to get their money back at any time, but this is possible only because a small fraction will want to at any one time.

But when there's a "run on the banks" in a financial crisis, banks can't satisfy the withdrawal demands of every depositor simultaneously - <USER3> through distressed sales that only exacerbate the problem. Governments sometimes step in to call a "bank holiday" until the panic subsides.

The situation, down to the main class of assets held (real estate) and the liquidity promised to creditors, seems to be pretty much exactly the same as at the retail level. That being the case, this seems to be the prudent move.

<comment><USER15> >This seems to me very analogous to preventing a run on banks. Traditionally retail banks would invest their depositors' savings in real estate by financing mortgages. Indeed - in England many banks are still called "building societies".

That's not really how banking works in a fractional reserve system. The money banks lend to borrowers is created as part of the loan transaction, and in theory the bank retains enough money to pay off all depositors in the event of a bank run.

<comment><USER14> You're confusing different definitions of the "money".

In theory, they retain enough _assets_ to pay off their creditors, but not enough _cash_. In the event of a bank run they'd have to be handing over their stake in mortgages and other debt that hasn't yet been paid off. But of course these are illiquid, and the creditors wouldn't accept that in general.

In the vocabulary of money supply, you're confusing M0 and M1.

<comment><USER15> The M0/M1 distinction is irrelevant - banks buy cash from and sell cash to the central bank all the time based on how much they need. Banks borrow against assets all the time, and during a run that's what they'd do.

"Illiquid" is just a word for little people as long as the bank is solvent.

</comment></comment></comment></comment><comment><USER16> Correct me if I am wrong, but isn't the "extreme circumstances" clause the same one used by Michael Burry prior to the 2008 crash (detailed in The Big Short)?

I don't think it's only British funds with this kind of language. It seems like standard boilerplate a lawyer would insert into the documents as a catch- all for anything unexpected (and misuse of it would be addressed with litigation)

<comment><USER4> > I don't think it's only British funds with this kind of language. It seems > like standard boilerplate a lawyer would insert into the documents as a > catch-all for anything unexpected (and misuse of it would be addressed with > litigation)

Yes, this kind of clause can be found elsewhere. The ones I'm most familiar with are Brazilian funds, and randomly picking one from a major bank, the rest of the rule for it is: if the fund stays closed for more than 5 days, the manager has 15 days to do a vote among the holders, which can then replace the manager, reopen the fund, keep it closed, pay in assets instead of cash, split the fund, or even liquidate it. So any misuse of this clause would probably lead at least to the manager losing control over the fund.

</comment></comment><comment><USER17> Locking the doors is always a risky proposition. On the one hand it avoids fire sales, on the other it makes other investors nervous. Great scene in "its a wonderful life" when their was a run on the Bailey Building and Loan where George Bailey (James Stewart) explains the "60 days" rule. And the people who "sold their shares" for 50 cents on the dollar to the evil banker across the street.

<comment><USER18> I was thinking of the scene in Mary Poppins regarding the tuppence: [https://youtu.be/lfP8__wl-_4](https://youtu.be/lfP8__wl-_4)

</comment></comment><comment><USER19> "At some point you have to wonder what happens if all these investors decide to go home."

Asset prices decline. Interest rates become attractive. New investors come in. Money under the mattress doesn't give much of a return.

<comment><USER20> And people in the UK get to have a reason to work again as land prices fall back in line with local wages.

Hooray. Speculators: go home. Of course we still need to put our parasitic banking industry into line but it's a start.

<comment><USER21> > Speculators: go home.

I imagine they know how to go short as well as long.

<comment><USER20> Really? I think most land speculators are pretty unsophisticated. How are they going to go short? Short UK house builders? Already dropped. Hedge GBP? Already dropped. Most are holding the baby now.

</comment></comment></comment></comment><comment><USER22> A bit of light relief on this subject from South Park:

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

</comment><comment><USER23> The Brexit will never happen, for 2 reasons.

1) The EU is not allowing the UK any unofficial negotiations, so they have no idea how any of these economic negotiations will go. The UK government is scared to pull the trigger and no one in power wants to be the one to do it.

2) The UK needs free trade with the EU. If they want free trade, they also have to agree to free movement of labor. Stopping free movement of the labor was one of the core reasons the Brexit passed.

<comment><USER24> But if they don't go through with it, the voters will be pissed that they are breaking promises and anti democratic, etc, and vote them out. It's my understanding that conservatives are over represented in Parliament in the UK.

You can have free trade without limitless immigration. Many countries do. I don't know where you get that idea.

<comment><USER25> I'm sure UK can have free trade with Japan without any immigration. Good luck arranging that (free trade w/o immigration) with the rest of EU.

<comment><USER24> I believe the EU has free trade deals with Australia and Canada, without unrestricted immigration. Those are both former UK colonies that are similar to the UK. I'm not sure why you believe the EU is anti-trade. In fact promoting free trade seems to be it's main purpose.

<comment><USER25> Label it whatever you want, but I believe the EU is anti-(trade with UK without freedom of movement) because they publicly said so.

[http://www.bbc.com/news/world-europe-36659900](http://www.bbc.com/news/world- europe-36659900)

> "Any agreement, which will be concluded with the UK as a third country, will > have to be based on a balance of rights and obligations. Access to the > single market requires acceptance of all four freedoms."

Are you saying that they're bluffing? (Well, that's possible, I guess.)

<comment><USER24> Well a single EU leader said that, I don't know if the opinion is unanimous.

Regardless, I suspect they won't do it because it would be irrational. Of course they have every incentive to make threats. But actually going through with them would hurt them just as much as the UK. Trade is a mutual benefit after all.

Anyway it just strikes me as mean-spirited. I doubt the EU leaders really care about immigration that strongly. They are also holding the UK to a different standard than other non-EU countries, and there is no justification for that.

I'll believe their serious if they start demanding the US, Australia, etc, open their borders or lose trade. Good luck with that. Yet somehow they find it weird the UK doesn't want unrestricted immigration.

<comment><USER26> > Anyway it just strikes me as mean-spirited. I doubt the EU leaders really > care about immigration that strongly.

Freedom of movement of trade, people/labour, capital and services is the core founding principle of the EU - they care about it a lot.

> Regardless, I suspect they won't do it because it would be irrational.

If Britain is given a deal that allows them all of the benefits of EU membership without any of the perceived downsides, all other EU member states will want this better deal too. Giving the UK such a deal would cause a number of additional countries to leave the EU. Thus, it would be irrational for the EU to give the UK a deal which would lead to the eventual breakup of the EU.

> I believe the EU has free trade deals with Australia and Canada, without > unrestricted immigration.

There are essentially three ways to trade with the EU: As a member state (Britain's current position, France, Germany, etc.), as a member of the EEA (Norway), or under WTO rules (Australia).

If the UK wants one of the first two options they will need to allow freedom of movement. If Australia (somehow) applied for membership of the EU or EEA it would need to allow freedom of movement for EU citizens.

</comment></comment></comment></comment></comment></comment></comment><comment><USER27> I suspect that what will eventually happen with Brexit is Britain will negotiate enough free trade deals that it will remain part of the EU in all but name.

<comment><USER28> Problem is: if they want free trade with EU, they must accept free movement of labor; which was the main underlying problem which caused people to vote for Brexit. If they adopt free labor movement, the Brexit would have been for vain, and most Brexit supporters won't go for it.

<comment><USER29> You can negotiate plenty of labor movement just with some simple qualifications, like not having a criminal history, being an eu citizen for 5+ years, no access to welfare for 3 years, things like that. I think most brexit supporters would go for that. The opposition is not to immigration in general from what I understand, but to uncontrolled immigration with which the UK parliament has no control.

Modern visa granting can be done electronically like the U.S. ESTA and could easily be achieved with little disruption. It could also prove a handy earner for a small fee.

I think it is misrepresenting the majority of brexit supporters to say they don't want any immigration. All the ones I talked to just wanted to have a say, and the EU did not give them that.

</comment></comment></comment><comment><USER30> Does the fine print say they are allowed to do this?

<comment><USER31> The article mentions that the managers are allowed to block withdrawals under 'exceptional circumstances' to protect those with a longer term investment outlook.

<comment><USER32> The book/movie "The Big Short" dramatizes this really nicely.

<comment><USER33> In that case the fund manager was portrayed as receiving threats of legal action when he refused to allow people to leave -- there was absolutely no explanatory context which allowed the audience to decide whether his actions represented merely a whim of the fund manager or a legally valid option.

Edit: My comment refers to the film.

<comment><USER34> That is not true. In fact the book was very clear how this occurred; I would have to rewatch but I believe the movie also hints at this. I thought the book's discussion of side pocketing was one of the most revealing parts of book: Lewis did an excellent job at explaining the recourses available to money managers.

Here's two short paragraphs from page 145 (of my copy, anyway) of The Big Short:

</comment></comment></comment></comment></comment><comment></comment><comment>=====

> One night, as Burry was complaining to his wife about the complete absence > of long-term perspective in the financial markets, a thought struck him: His > agreement with his investors gave him the right to keep their money if he > had invested it "in securities for which there is no public market or that > are not freely tradable." It was left to the manager to decide if there was > a public market for a security. If Michael Burry thought there wasn't--for > instance, if he thought a market was temporarily not functioning or somehow > fraudulent--he was permitted to "side-pocket" an investment. That is, he > could tell his investors that they couldn't have their money back until the > bet he'd made with it had run its natural course. And so he did what seemed > to him the only proper and logical thing to do: He side-pocketed his credit > default swaps. The long list of investors eager to get their money back from > him--a list that included his founding backer, Gotham Capital--received the > news from him in a terse letter: He was locking up between 50 and 55 percent > of their money. Burry followed this letter with his quarterly report, which > he hoped might make everyone feel a bit better.

...

> Immediately, his partners at Gotham Capital threatened to sue him. They soon > were joined by others, who began to organize themselves into a legal > fighting force. What distinguished Gotham was that their leaders flew out > from New York to San Jose and tried to bully Burry into giving them back the > $100 million they had invested with him. In January 2006 Gotham's creator, > Joel Greenblatt, had gone on television to promote a book and, when asked to > name his favorite "value investors," had extolled the virtues of a rare > talent named Mike Burry. Ten months later he traveled three thousand miles > with his partner, John Petry, to tell Mike Burry he was a liar and to > pressure him into abandoning the bet Burry viewed as the single shrewdest of > his career. "If there was one moment I might have caved, that was it," said > Burry. "Joel was like a godfather to me -a partner in my firm, the guy that > 'discovered' me and backed me before anyone outside my family did. I > respected him and looked up to him." Now, as Greenblatt told him no judge in > any court of law would side with his decision to side pocket what was > clearly a tradable security, whatever feelings Mike Burry had for him > vanished. When Greenblatt asked to see a list of the subprime mortgage bonds > Burry had bet against, Burry refused. From Greenblatt's point of view, he > had given this guy $100 million and the guy was not only refusing to give it > back but to even talk to him. And Greenblatt had a point. It was wildly > unconventional to side-pocket an investment for which there was obviously a > market. There was clearly some low price at which Michael Burry might bail > out of his bet against the subprime mortgage bond market. To some meaningful > number of his investors, it looked as if Burry simply did not want to accept > the judgment of the marketplace: He'd made a bad bet and was failing to > accept his loss. But to Burry, the judgment of the marketplace was > fraudulent, and Joel Greenblatt didn't know what he was talking about. "It > became clear to me that they still didn't understand the [credit default > swap] positions," he said.

<comment><USER33> I've edited my comment to make it clear that by "The Big Short" I had understood that we were discussing the movie of that name.

It's probably safe to say that the editors/director of the movie knew what they were doing when they omitted any explanation of the possible side-pocket situation. The overall impression given is in keeping with the passages you've quoted.

<comment><USER34> No, the movie also includes it (though the specific words "side pocket" are not mentioned, it is clear that it was a legal option available to the fund manager). It's directly in the text of the e-mail that Burry types out to his investors. From the screenplay text[1]:

> Mike types an email. He is alone in the office with empty desks outside.

> "As you may know, our agreement allows me to take extraordinary measures > when markets aren't functioning properly. I currently have reason to believe > the mortgage bond market is fraudulent. So in order to protect investors > from this fraudulent market I've decided to restrict investors' withdrawals > until further notice. Sincerely. Dr. Michael Burry."

> Mike breathes deep, and hits SEND.

[1]: [http://www.paramountguilds.com/pdf/the-big- short.pdf](http://www.paramountguilds.com/pdf/the-big-short.pdf)

</comment></comment></comment><comment><USER35> Not to be the token cryptocurrency shill in the thread, but Bitcoin and its derivatives are very useful in situations like this. It's impossible to stop or otherwise block Bitcoin transfers, so it enables, for better or worse, unrestricted capital movement.

<comment><USER36> Not true. These are hedge funds managing complex instruments, not just regular bank accounts. Your bitcoin wallet doesn't allow shorting for example.

Equivalent instruments built on blockchain technology would suffer from similar issues.

<comment><USER37> >These are hedge funds managing complex instruments.

How come it's only when it comes to matters of finance that people tell me things are too complex for me to understand, yet I am well capable of understanding the most convoluted of machinery and systems. My only conclusion is that they are needlessly complicated on purpose.

<comment><USER38> It's not particularly complicated. But if you invest in a real estate fund and want your money back, you can't walk into some random office and take "your" chair. If you invest in a gold mine, you can't go grab "your" shovel. Your interest is diffuse.</comment></comment></comment></comment>


Ask HN: What would the world be without border control? - <AUTHOR> Longshot, but assuming there's no terrorism and people blowing up stuff, how would the world get affected if movement of people across borders was completely unrestricted. You can just take a flight, and go anywhere you wish.
What would happen to economies, a state of life of a common citizen for example in India or the US. How would trade get affected? Would Americans have a better/cheaper healthcare?
I understand that the geographical 'walls' are built for a reason, but what would happen if they didn't exist. Some will complain, and the others will be happy, what would the net effect?
Any books/pointers to understand this would be helpful. <comment><USER2> Look at Europe pre-WWI. Quoting [https://en.wikipedia.org/wiki/Passport#History](https://en.wikipedia.org/wiki/Passport#History):

> A rapid expansion of railway infrastructure and wealth in Europe beginning > in the mid-nineteenth century led to large increases in the volume of > international travel and a consequent unique dilution of the passport system > for approximately thirty years prior to World War I. The speed of trains, as > well as the number of passengers that crossed multiple borders, made > enforcement of passport laws difficult. The general reaction was the > relaxation of passport requirements.[10] In the later part of the nineteenth > century and up to World War I, passports were not required, on the whole, > for travel within Europe, and crossing a border was a relatively > straightforward procedure. Consequently, comparatively few people held > passports.

> During World War I, European governments introduced border passport > requirements for security reasons, and to control the emigration of people > with useful skills. These controls remained in place after the war, becoming > a standard, though controversial, procedure. British tourists of the 1920s > complained, especially about attached photographs and physical descriptions, > which they considered led to a "nasty dehumanization".

For what it's worth, "Uniquely, the Norwegian archipelago of Svalbard is an entirely visa-free zone. Everybody may live and work in Svalbard indefinitely regardless of country of citizenship. The Svalbard Treaty grants treaty nationals equal right of abode as Norwegian nationals. Non-treaty nationals may live and work indefinitely visa-free as well." ... ""In the past, immigrants who have been refused a visa for mainland Norway have moved to Longyearbyen, lived there for seven years and been awarded Norwegian citizenship."" \- [https://en.wikipedia.org/wiki/Visa_policy_of_Svalbard](https://en.wikipedia.org/wiki/Visa_policy_of_Svalbard)

</comment><comment><USER3> One of the oldest criteria of being a real state is the ability to control who enters and leaves your territory.

Unrestricted border control is basically giving up nationhood, and that's not done lightly.

Imagine if a regiment of armed Russians decided to "travel" into, say, Poland for a "holiday jaunt". That's unacceptable. Similarly, having lots of Americans deciding to move into Canada would be violating their sovereignty.

It's really weird that this is something a lot of folks these days have trouble with.</comment>


Towards a Rust Foundation - <AUTHOR> http://smallcultfollowing.com/babysteps/blog/2020/01/09/towards-a-rust-foundation/ <comment><USER2> I have a lot of experience in building open source foundations, from my time at Apache, Eclipse and the Linux Foundation, lots of pros and cons across different entities in terms of how much professional help you want (versus volunteer labor). I generally don't recommend standing up your own foundation from scratch unless you're extremely well funded. The Linux Foundation essentially offers "Foundation as a Service" for projects. It hosts a variety of projects and organizations, from LetsEncrypt.org, to Kubernetes (CNCF) to GraphQL to NodeJS (OpenJS) to the R Consortium and more. I created a presentation here not so long ago about the process/benefits: [https://www.slideshare.net/caniszczyk/bringing-an-open- sourc...](https://www.slideshare.net/caniszczyk/bringing-an-open-source- project-to-the-linux-foundation-206551742)

I'm happy to have a conversation if you ever wanted to chat more about the details.

<comment><USER3> I saw you posted this in other places too. Several of us have some LF experience, so we're already broadly familiar, but I appreciate it! We'll reach out if appropriate, thanks!

<comment><USER2> Thanks, I believe you're based in Austin also so happy to do coffee (unless I'm wrong)

<comment><USER3> I am! If you ever want to get coffee about non-LF stuff, let me know :)

<comment><USER4> you two are both rad and this is the best interaction I've seen on the orange site in a while

<comment><USER5> Because it's almost contentless?

<comment><USER3> It's just a bit inside baseball; Myles is on the Node TSC, which is an organ of the Linux Foundation via the Node Foundation.

</comment></comment></comment></comment></comment></comment></comment><comment><USER6> > _should the Foundation be a 501(c)(3) (a non-profit, in other words) or > not?_

If you go the independent foundation route, choosing 501(c)(3) would be in keeping with the stated priority to have Rust's governance be independent. This makes it more difficult for corporations to control the foundation's direction through insisting that their donations be used for specific purposes, because donations to a 501(c)(3) cannot unduly advantage any commercial entity.

ETA: There are different types of "non-profit" organizations under IRS code 501. 501(c)(3) is a "Charitable Organization", and donations are tax deductible. (Tax-deductible donations cannot be used to unduly advantage a commercial entity because if they were, the business could avoid paying taxes on funds they use to further their own initiatives.) 501(c)(6) is a "Business League", where donations are _not_ tax deductible, so donors have much more leverage.

<comment><USER7> The problem with trying to become a 501(c)(3) nonprofit is that you have to show a "charitable purpose", which can sometimes be hard to do ("supporting open-source software" is _not_ a valid charitable purpose under current US law, sadly enough) [not legal advice]

<comment><USER8> Educational 501(c)(3) foundations meet that requirement.

<comment><USER9> I don't think this foundation would qualify.

I'm so incredibly not a lawyer, but my understanding is that educational 501c3s need to be predominately educational, in that they have classes and a physical location.

If the primary purpose of the Rust foundation is open source code and standardizing the language, it's not exactly educational.

<comment> benji-york For what it's worth, the Python foundation is a 501(c)3: [https://www.python.org/psf/](https://www.python.org/psf/)

</comment></comment></comment></comment></comment><comment><USER10> An independent foundation for Rust makes a lot of sense. No doubt the Linux Foundation will pounce on this opportunity to absorb yet another project into its orbit... I would prefer if Rust steered clear of LF / CNCF if possible. Their governance and financials are opaque, they prioritize corporate sponsors and fancy events at the expense of every other priority, and there is already too much power concentrated in a very small group of people.

The Linux Foundation / CNCF people will tell you that it's really hard to setup a foundation, and you should leave it up to them. I don't think that's actually true. In my opinion LF gets much more value out of projects (through compounded brand value and revenue opportunities) than the other way around.

Nothing terrible will happen if you go with them... but nothing amazing will happen either. You will get the bare minimum support and infrastructure, and nothing more. Meanwhile, a few people who don't actually contribute any open- source code will benefit immensely from the Rust brand.

EDIT: I just realized that the Linux Foundation people are already on this thread making their sales pitch...

</comment><comment><USER11> A classic example of this going wrong is the Gentoo Foundation. Not only did it make them lose the founder of Gentoo (which, admittedly, isn't as much of a problem with Rust: Hoare has already moved on to bigger things), but it caused a variety of organizational troubles that still can be seen in Gentoo today.

Hope this goes well!

</comment><comment><USER12> > should the Foundation be a 501(c)(3) (a non-profit, in other words) or not?

This seems to imply that the US is the only place a foundation would be incorporated? Other jurisdictions may have more favourable legal regimes.

</comment><comment><USER13> Note that this proposal is not about changing the governance of Rust the language. That is and will remain the responsibility of an independent group. This is purely about handling administration of the Rust project and having a legal entity which can sign contracts, hold trademarks, own domain names, etc.

<comment><USER6> Depending on how you set up administration, independent governance can become difficult to sustain. The more money you take from donors, especially "directed" donations with strings attached, the harder it is.

For example, you may fear offending a donor who wants to use the "Rust" trademark for their megabudget conference where they sell themselves as the preeminent Rust experts.

This comes into play if you consider funding development directly through a foundation, which requires large donations.

<comment><USER14> Yeah, that's why I'd prefer for the Rust Foundation to be as lean as possible, explicitly excluding raising donations for the whole project and paying developers from its scope. Funding development could then be done by other entities, not related to the foundation.

[https://internals.rust-lang.org/t/blog-post-towards-a- rust-f...](https://internals.rust-lang.org/t/blog-post-towards-a-rust- foundation/11601/17)

</comment></comment></comment><comment><USER15> I think hiring of devs might be good long term though provided funding is there. There are always areas which might not be something people would work for fun on but which might be important to ecosystem.

<comment><USER16> Does Mozilla (the current steward of the the language, as is my current understanding) not currently pay devs to work on Rust?

<comment><USER3> Framing Mozilla as the "steward of the language" is one reason why we're making this move. Don't get me wrong, Mozilla is important to Rust, but (in all things other than the trademark, which is a nuclear option they've given no indication of ever using) the relationship is much more of a "large supporter of" then "in control of" one. Having a foundation would make this much more clear to folks who aren't deeply involved in Rust.

<comment><USER17> Didn't you sort of have a falling-out type of experience with Mozilla? Does that have any effect on this move?

<comment><USER3> From the very beginning, the folks sponsoring the Rust effort from within Mozilla made sure that Mozilla couldn't directly control things. And Mozilla also just isn't that kind of organization to begin with, honestly.

These conversations have been going on a _long_ time. This particular iteration of this conversation started before I left Mozilla. It has nothing to do with me personally, regardless of that relationship.

I have long (before, during, and after my employment at Mozilla) have thought that an independent foundation would be excellent for Rust, but am worried about the details. Foundations require active administration, which is even more work. And it's unclear who does that work. I think that we've grown to the point where it very well make sense now, though.

</comment></comment></comment></comment></comment><comment><USER18> The time is right for this step, Rust will benefit from having a proper umbrella organization. Also, it's a very well-writen post on what could be a boring topic.

</comment><comment><USER19> I'd prefer the evolution of Rust to slow down and stabilize. More like C and much less like C++.

<comment><USER20> Do you have an example of a programming language that's both widely-used and does not evolve ? Even C has a new standard every 3-5 years nowadays.

<comment><USER21> A recent example.

Go values not breaking current code much more than adding features.

<comment><USER22> Yet even Go has several new features not present in version 1.0 and 2.0 roadmap is underway.

Languages are software products, they are evolve to fulfill the market needs or they die.

<comment><USER21> Adding features? Sure, as long as current code keeps compiling.

<comment><USER22> Even C removes features from time to time.

ANSI C compilers are not required to still support K&R C, Annex K was compulsory on C99, became optional on C11, gets() was removed, some semantics corrected,....

</comment></comment></comment></comment></comment></comment><comment><USER23> The major serious languages get along just fine with IEEE, ANSI, and ISO.

For example, C is handled by ISO/IEC JTC1/SC22/WG14.

The idea that Rust would need a foundation is making me uneasy.

<comment><USER3> The Rust project has much more things under its wings than the C ISO group does. It's a superset.

The Rust project sees Rust as more than just purely a language. For example, the C ISO group doesn't run any web facing infrastructure, with all of the legal and financial obligations that implies, nor do they develop compilers, with all of the CI/hosting infrastructure that implies.

They're just different in scope, which has been true for all of Rust's lifetime.

<comment><USER23> That is common for toy languages without wide industry support. It doesn't inspire confidence.

There should be compilers from Microsoft, IBM, Apple, GNU/FSF, and several others. There should be a properly ratified international standard that describes the language. There should be support from 16-bit microcontrollers to mainframes.

Languages like C have lots of web facing infrastructure. It just isn't all run by one entity. The eggs are not in one basket.

<comment><USER24> How many languages outside of C, C++ and amusingly, old versions of C# fit that? Not that many that I can think of. Maybe Ada, Javascript?

Java isn't officially standardized (ISO or such), neither are C# nor Python, Ruby, etc.

</comment></comment></comment></comment><comment><USER19> I'd prefer the evolution of Rust to slow down and stabilize. More like C and much less like C++. OTOH there are a few things I feel the language needs. Better control of memory layout, and a stable ABI in particular, so it can become a good foundation for more libraries and infrastructure.

<comment><USER20> Rust already provides a stable ABI via `repr(C)` types and `extern "C"` functions.

<comment><USER25> And memory layout through repr(align). I also disagree that rust should slow down. There are a number of critical features that need to land for the language should "stabilize" (it is stable).

<comment><USER19> I agree a few more things need to get in. But AFAICT the abi is not stable and you may need to recompile all dependencies when updating the compiler.

I would like it to be "feature complete" without having regular churn like C++. Or the recent battle with Python that was a sort of last straw for Guido. C is almost completely stagnant and that's a good thing. Posix as well. If you want to be a long term systems language it seems stability is a critical feature and Rust needs to get that in the next few years. IMHO or course.

<comment><USER25> C++ didn't have a pragmatically stable ABI until like a year ago on MSVC. You had to jump through hoops with extern C APIs or COM and the like. The same is true in Rust, and even in C++ with different tool chains on windows.

The only language with a stable ABI is C (and that is more accidental than explicit). It's too hard a guarantee to provide with little ROI when you have a workaround, and it chains your implementation to ABI details.

Just as an example, rustc is very clever about struct layout and liberally pads fields to get superior alignment. This may change in the future depending on architectures and paradigms. You don't want your ABI to define a padding scheme for your targets today, you want future compilers to be smarter.

If you want to guarantee stability you need to align the memory manually on the structs that cross ABI boundaries like shared libraries, and any kind of language construct that lets you do future tricks with ABI within a binary but provides escape hatches for things along the boundary would look identical to how you do things today via attributes.

TL;DR ABI stability in the compiler is simply not desirable. You can already do it manually and you should do it manually. It's fairly ergonomic as well.

<comment><USER26> Interesting, I wasn't aware that Microsoft documents the ABI compatibility for MSVC 2015-2019.

[https://docs.microsoft.com/en-us/cpp/porting/binary- compat-2...](https://docs.microsoft.com/en-us/cpp/porting/binary- compat-2015-2017?view=vs-2019)

Furthermore, GCC/libstdc++ have maintained ABI compatibility for at least 15 years now, even across an incompatible change of std::string and std::list required for C++11 conformance, so in practice the situation with C++ looks better than with Rust.

[https://developers.redhat.com/blog/2015/02/05/gcc5-and- the-c...](https://developers.redhat.com/blog/2015/02/05/gcc5-and-the-c11-abi/)

</comment></comment></comment></comment></comment></comment><comment><USER27> I assume it may not be a popular opinion here, but it would be so much easier if projects like Rust could have a DAO (decentralized autonomous organization) instead of a foundation, and a blockchain account managed by this DAO instead of a bank account.

The main issues I see with this idea are volatility of cryptocurrencies prices, inability of paying with cryptocurrencies in most cases atm, environmental issues regarding the blockchain and the infantry of DAO governing models.

But as an abstract idea I believe DAOs will replace foundations at some point in the future, making such discussions much easier.

<comment><USER28> The really nice thing about making Rust a DAO is that the legal code can literally be written in Rust ;-P

<comment><USER29> This comment should probably have a trigger warning.</comment></comment></comment>


Ask HN: How to get started with Linux kernel developing/debugging? - <AUTHOR> Hello HN,
I'm a developer and Linux user for quite some time. I run Arch Linux and already experienced with different kernels, also with building some special Kernels from AUR and applying some patches, etc.
Now I have a minor issue with my touchpad, I know it's caused by a change between 4.9 and 4.11, not sure what exactly, and I would love to figure this out on my own and eventually submit a patch. This is knowledge/a skill I was eager to gain for quite some time now.
So, Dear HNers, what would you recommend to an experienced programmer to get started with debugging and developing the Linux kernel? I'm looking for everything that you made good experiences with, be it articles, tutorials, videos or even books.
Thanks to everyone! <comment><USER2> Not a kernel developer, yet! I'd say that you ought to start out with using qemu/kvm to spin up a virtual machine. The qemu documentation itself contains some info on how to hook up a gdb debugger to the os.

Since it's a real hardware problem probably you'll need to set up some usb forwarding to the qemu program, but that should be doable I think.

Again not a kernel hacker but good luck to you!</comment>


Chrome downloads extension that turns on mics and listens without consent - <AUTHOR> https://twitter.com/Falkvinge/status/611072058487930881

<comment><USER2> Is there a way to confirm if other platforms are having this issue? I checked my Chrome in work and home computers and couldn't find anything. But then again this extension is supposed to be hidden, so not sure.

<comment><AUTHOR> It's installed on my Mac - chrome://voicesearch/

</comment></comment><comment><USER3> The bug is supposed to be fixed upstream. But the real problem shown here is that chrome can download and execute anything without any user knowledge.</comment>


How Calico, Google-Backed Research Lab for Aging Research, Operates - <AUTHOR> http://recode.net/2015/12/28/the-stealth-attempt-to-defeat-aging-at-googles-calico/ <comment><USER2> They've hired some really heavy hitters in biology, but that's about all this article reveals. Would be nice to know what they're doing, given the extremely strong academic pedigree for some of these guys I wonder if they'll start publishing some of their research.

It would be great if Google/Alphabet's resources could be used to ask biological questions that a hyper conservative organization like the NIH is reluctant to fund, but that's a little less useful if most of that knowledge stays locked up at Google.

Another note, it's not trivial to apply computational tools to biology and come back with meaningful results. The fact that they're hiring people who really know their biology to act as a sanity check and a guide to what we can only assume is a strong computational effort is a very welcome indication that Calico is trying to avoid those pitfalls.

<comment><USER3> Google's resources are already being used to ask biological questions that NIH is reluctant to fund (I know, because after NIH was reluctant to fund my research, I went to Google and did it there instead). I felt it was pretty important that the knowledge was diffused, this includes both publications and data dumps.

<comment><USER4> Does Google give away funding for projects?

<comment><USER3> Sorry for the late reply. Yes, Google has several research awards, including this one: [https://research.google.com/research- outreach.html#/research...](https://research.google.com/research- outreach.html#/research-outreach/faculty-engagement/faculty-research-awards)

and previously I helped run the Exacycle Visiting Faculty program where we brought in postdocs and professors to use our computational resources.

<comment><USER4> Thats great to know. I thought Google stayed out from academia.

</comment></comment></comment></comment></comment><comment><USER5> Some more insight from this, an audio interview with Aubrey de Grey (SENS Research Foundation) and Brian Kennedy (Buck Institute):

[http://mendelspod.com/podcasts/brian-kennedy-and-aubrey- de-g...](http://mendelspod.com/podcasts/brian-kennedy-and-aubrey-de-grey- their-converging-approaches-aging-research)

Which, being nice, I've transcribed some of:

Moderator: What response have both of you had to the entrance of Calico, the Google company, and Human Longevity, Craig Venter's new company?

Aubrey: It's a complicated question. I'll talk about Human Longevity first. In my opinion they are not really working on what we're working on. They are working on personalized medicine, trying to optimize therapies that essentially already exist using analysis of large amounts of genetic data.

Moderator: So a similar company to other companies that are out there, with a fancier name?

Aubrey: I would say that definitely their hearts are in the right place, but they are a regular, perfectly normal company. They want to make profits fairly soon. Calico have set themselves up as a completely unusual company with the goal of doing something very long-term, however long it takes, they want to actually fix aging. They said so - Larry Page was perfectly clear about that. The question is how are they going about it, and that's getting really interesting. The first thing that they've done, which I feel is an absolutely spectacularly good move, is to bifurcate their work into a relatively short- term track and a long-term track. The short term track involves drug discovery for age-related diseases, doing deals with big companies like Abbvie, and so on. That's all very wonderful and all very lucrative in the relatively short term, and has more or less nothing to do with the mission for which Calico was set up - but it is a fabulous way to insulate the stuff that they do that is to do with why Calico was set up from shareholder pressure. It gets a little more complicated though. So then on the long term side, the stuff being led by David Botstein and Cynthia Kenyon, the question is how are they going about their mission. Of course an awful lot of this unknown because they are a secretive company, but from the perspective of whom they are hiring, and what kinds of work those people have done in the past, one can certainly say that they are not just focusing on one approach. They are interested in diversity. My only real concern is that they may be emphasizing a curiosity-driven long term exploratory approach to an unnecessary degree. I'm all for finding out more and more about aging, but I'm also all for using what we've already found out to the best of our ability to try stuff and see what we can do. I should emphasize that this is only my impression from a very limited amount of information available, but my impression is that it is perhaps turning into an excessively curiosity-driven, excessively basic science, inadequately translational outfit. And that's kind of what I feared when Botstein came along in the first place, because he's on record as saying he doesn't have a translational bone in his body. Now Brian could obviously say a lot more if he wants to, as he's done a deal with Calico.

Brian: Let me start by saying that I think its great that these big companies are getting into the game. Almost no matter what happens that is going to help the field get more people, more private sector people involved, maybe get Big Pharma involved, and so I think it is a good thing. I can't say too much about Calico because we have a relationship with them, but I will say that I think it is an interesting challenge when all of a sudden a lot of money is on the table, and very good people are hired to say "go solve this problem," and they haven't been thinking about that problem until a month ago. So I think what we're going to see with Calico is that they're going to continue to evolve as they go forward, and I think it will be very interesting to see the kinds of stuff they choose to do, and it may be very different two years or three years from now.

Moderator: You were saying in the panel we were just at that you thought it was a game-changer.

Brian: I think it adds great momentum, and I think it will be equally important to really get Big Pharma to get into this game too. It is easy to say you've got a ton of money, but what is a ton of money? If you're going to start doing real clinical trials, phase III clinical trials, it takes more than a ton of money; Big Pharma has to come in. Getting Abbvie involved is a good step, but it would also be good if everyone else starts saying this is the place to be.

</comment><comment><USER6> I'm a bit irked by the article's original title: "What's he building in there?"

The phrase trivializes the work of a large team of various genders and backgrounds working together on a massive research initiative to extend the human lifespan and makes it seem like a whacky project by one hacker dude in his garage. Come on.

Biology is one of the most team-oriented, least male-dominated, best well- balanced STEM fields and science journalists are still writing titles like "What's he building in there?"

<comment><USER7> you probably didn't read the article in its entirety, otherwise you'd see that "What's he building in there?" is a reference to a song.

>The phrase trivializes the work of a large team of various genders and backgrounds working together on a massive research initiative to extend the human lifespan

thus it seems that it is your uninformed interpretation that trivializes the work. Pretty typical situation of "the eyes of beholder" i'd say.</comment></comment>


Setuptools-Distribute merge announcement - <AUTHOR> http://mail.python.org/pipermail/distutils-sig/2013-March/020126.html <comment><USER2> This is very good news indeed -- life will be easier for lots of Python-based projects, with the distribute changes merged into setuptools!

<comment><USER3> This isn't good news because it means we are going to be suffering along with setuptools even longer, which is substantially the cause of all the packaging pain in Python.

If it made sense to reject distutils2 as having too much cruft, it makes even less sense to accept setuptools which will be even cruftier and provide an eternal excuse not to switch to anything better

It certainly wasn't ever the problem that "distribute is not enough like setuptools" which is all this should "solve".

<comment><USER2> I was not saying "distribute is not enough like setuptools", but rather meant I'm glad the author of distribute is taking over setuptools, with the maintainer of setuptools 'retiring'.

</comment></comment></comment><comment><USER4> Can someone here point to a _good_ article (or a couple of articles, for that matter) explaining the history of Python packaging and the "new way of doing things"?

<comment><USER5> This article has some good history: <http://lucumr.pocoo.org/2012/6/22/hate- hate-hate-everywhere/>

</comment></comment><comment><USER6> What are the pros and cons, obvious and less so, of including pip as well?

</comment><comment><USER7> So what does this mean for those of us who have made the jump to Distribute? Do we now jump back to Setuptools in a year or something?

<comment><USER8>
      | and phasing out the distribute fork as soon as
      | is practical

I'm guessing there will at least be an 'end date' where it'll be officially deprecated.</comment></comment>


Everyone can now track down noisy tabs - <AUTHOR> http://chrome.blogspot.com/2014/01/everyone-can-now-track-down-noisy-tabs.html <comment><USER2> As a parent I was more interested in the "supervised users" feature to monitor your children's internet usage. Parents desperately need something simple to help them make sure that their children are safe on the internet.

Most solutions are far too technical for most parents to understand and their children are more technically aware than they are, even at a young age.

It is of course important that parents can educate their children about the dangers of the internet, but such a feature is like having stabilisers on a bike. Once your children show you that they can be trusted the you can take the supervision off and give them the privacy they they too deserve.

I think Google is hitting a sweet spot if they can get that feature right.

[http://chrome.blogspot.de/2013/10/a-beta-preview- supervised-...](http://chrome.blogspot.de/2013/10/a-beta-preview-supervised- users.html)

<comment> jack-r-abbit Same here. I didn't realize tabs playing music was such a rampant problem that needed to be addressed. The supervised users feature has a lot of appeal to me as well. My kids' computer (Mac Mini) has Chrome set as the default browser. I'll need to look into this more closely.

<comment><USER3> Initially, I also wondered how many people have the noise problem. So far, the only way I managed to maneuver myself into that situation in Firefox is by having a few hundred tabs open (enough to make FF become sluggish and unresponsive) and then clicking around too much in an unresponsive interval. In that situation, I'd end up with some tabs, unknown to me, that I had accidentally clicked, which then start playing youtube videos.

There might, however, be more exposure to this problem for people who don't use adblockplus and noscript. I'm just not sure how. You'd open a bunch of tabs and then a few seconds later one of them would start blabbing?

<comment> jack-r-abbit I guess I just don't use my browser the same way. I don't typically have more than 15-20 tabs open but I very rarely have a tab open that I'm unaware of. I must also manage to avoid all the annoying sites that use ads that play automatically. I don't use adblock or noscript and I think I can count on one hand the number of times I've had an ad play on its own. And it was always pretty easy to spot and rectify.

I wonder how many tabs you can open before the tabs become too narrow and this new speaker icon goes away. Or maybe it would take the place of the favicon on a really narrow tab.

<comment><USER4> >I wonder how many tabs you can open before the tabs become too narrow and this new speaker icon goes away. Or maybe it would take the place of the favicon on a really narrow tab.

I just experimented with the beta and found that as the tabs narrow, it over time does change prioritization between the favicon, title, and audio indicator. On my 15" Mac Book Pro, once I hit about 40 tabs in one window I can no longer see the audio indicators.

I think Chrome will need to show the user an overview of audio indicators (similar to what I attempted to do in my MuteTab Chrome extension.) You can get some information at chrome://media-internals but 1) that isn't user facing and 2) it doesn't let you perform commands. I would have to guess the reason this hasn't happened is because Chrome works really hard to provide users with a minimal interface; perhaps they could provide an audio API and let people who care about this install an extension?

</comment></comment></comment></comment></comment><comment><USER5> "On the desktop, we've updated the default styling of UI elements like form controls and scrollbars"

They kept that one quiet didn't they. A strange "feature" addition that's starting to cause quite an uproar on the Chromium issue tracker: [https://code.google.com/p/chromium/issues/detail?id=279464](https://code.google.com/p/chromium/issues/detail?id=279464)

<comment><USER6> It's really horrible, here's the same radio group in Firefox and new Chrome:

Firefox: [http://i.imgur.com/T8dWHcl.png](http://i.imgur.com/T8dWHcl.png)

Chrome: [http://i.imgur.com/EMNjV4P.png](http://i.imgur.com/EMNjV4P.png)

The Chrome one somehow removes padding and also looks like a disabled control when in fact it isn't.

<comment><USER7> Chrome's renderer has always been extraordinarily ugly coming from Firefox. HTML Forms and font rendering specifically.

</comment></comment></comment><comment><USER8> Does someone know how this feature works?

I thought this was difficult/impossible to do because plugins like flash communicate directly with the OS APIs, bypassing Chrome (this was confirmed by the Chrome team in a reddit AMA a while back).

I suppose this is possible with the Flash plugin that comes bundled with Chrome, but what about other plugins, like Java?

Edit: never mind, found this on omgchrome: "the indicator will be successfully triggered by most browser audio...this means the flash version that comes built-in with Chrome, HTML5 content and apps making use of PPAPI/NACL plugins. But a few things aren't picked up, including anything making use of "out of Chrome" plugins, like Silverlight and Quicktime."

</comment><comment><USER9> Good feature, but to take it one step further. I'd like to request an auto- mute feature filtered by domain names. Why?

Too often, when you are surfing on streaming movie sites and porn sites, you are forced to disable AdBlock in order for the videos to load properly; but you'd get those annoying popup tabs in the backgrounds with JasmineCam for porn sites and P&G/J&J household product ads for movie streaming sites. I'd like to mute those tabs right away and also right click and add them to the "mute audio list". Someone with the pull, please add this to the Chromium project tracker!

<comment><USER10> This feature should be implemented as an extension. The only reasonable thing to request in the project tracker is to have the audio status available in the extension api.

</comment></comment><comment><USER11> So, if I'm researching and I have ~40 tabs open, what will be visible? I already have trouble seing the tab titles.

Modern desktop displays are wider than they ought to be. Vertical space is scarce while there's almost always space left on the sides. I still can't grasp that they scratched the vertical tabs feature, because it made total sense. The reason I'm on Firefox: [https://addons.mozilla.org/sv- se/firefox/addon/tree-style-ta...](https://addons.mozilla.org/sv- se/firefox/addon/tree-style-tab/)

</comment><comment><USER12> Close but no cigar.

Unless I specify otherwise, media should play in a window _only_ when it's active, _unless_ I specify otherwise.

Media should _not_ play automatically by default. Again, unless I've activated it.

A bigger issue is that browsers are absolute crap for managing content generally. My typical session is: start with a few launching points (project pages, wiki/blog, newsreader, possibly social page), queue up material to look at.

At this point, my preference would be that the material I've queued up _doesn 't even fucking load_. Too many pages and too much memory simply pigs stuff out.

Most browsers currently have a "pin as app" option for tabs -- if you want your GitHub, CampFire, Jira, Gmail, or similar pages to _run as apps_ , then set them to _run as apps_.

Unfortunately, the browser has, for some time, been stuck in a worst-of-all- possible-worlds limbo: it's _neither_ a good reading environment -- for that you'd want something like Readability, Pocket, Instapaper, or an eBook management tool such as Moon+Reader, Kindle, or (bad as it is) Calibre -- _nor_ a decent applications environment: it's bloated, crash-prone, slow, full of security holes, and underfeatured relative to native applications.

However in both cases the browser's ability to load and display or run arbitrary content makes it convenient.

What do I want? Vastly better content management tools. Bookmarks and tab management on steroids. As Jay-Z said: I've got 99 tabs open and your autoplay isn't the one I'm looking at. If something's in background, _let it fucking die already_ , saving state somewhere and restoring it should I happen to navigate back to it. Keeping a _small_ number of tabs (2? 6? 12?) active should be more than enough. Least used gets offed when I switch to number n+1.

And figure out what the hell you want to do with the applications space. I do use some Web apps, but still largely find them annoying. I've all but given up on G+ and Gmail for numerous reasons, but the fact that my Chromium session becomes completely unusable once I've got either open really doesn't help matters much.

Frankly, this is like providing cleaner, brighter living quarters for slaves when what needs to be done is emancipation. I appreciate the thought, but it's far too little, far too late.

<comment><USER13> I can't help but wonder if it's too late for that at this point. Users expect a page to be "loading" while they're not looking at it. Loading and running both swf and javascript often takes part as the initialization of the page. It's frustrating to a user when they open multiple tabs and expect them to be loaded by the time they switch to one, but the page is just now starting to load.

Maybe this is a symptom of the fact that loading orders, preloading, etc isn't built into the standard, but is hacked on top?

<comment><USER12> So, how about this happens: I add a link to my reading queue. This _downloads the content_ but then saves it to cache. The page isn't rendered. It doesn't even open as a tab, but as some sort of reading queue, linked by context to where I opened it from, date, and other related metadata, plus more I can add (tags, etc.), later.

If I want it rendered in a clean "Instapaper" view, I get that too.

If it's ephemera, it clears automatically. If I want to have it stick around, that too.

When I actually _do_ load it up, it's reading locally from disk. This is pretty much how Readability itself works, in the app versions, and it's quick even on low-powered devices such as my rather old HTC Incredible Android phone (faster than most Web pages these days, and rather more compatible as I'm now multiple revs out of date).

As for SWF and Javascript: I tend to keep both disabled by default, and for most content, neither SWF nor Javascript are generally meaningful. There's the odd site which fails utterly to render without them (it's more than a tad bit ironic that Google's own blogging platform is one of the worse offenders), but that's pretty much the minority.

<comment><USER14> This is precisely how Safari's Reading List feature works. (Not that anyone would ever use it to know.)

<comment><USER12> Pity that's not an open standards multi-platform browser or I might try it.

But good to know.

</comment></comment></comment></comment></comment><comment><USER15> Now if you can just mute it directly from the tab they'd really be onto something.

<comment><USER16> I would prefer preventing audio + video to start on a tab that is not selected.

<comment><USER17> That would also prevent using a web browser to run a music player in the background.

<comment><USER16> Note the phrase _preventing to start_. Already playing media would be unaffected.

+: Also the rule would be extended to include minimized browser even if the tab is selected.

<comment><USER18> What does that even mean? You can't stop at a single file or stream as that would most likely still break things. If you allow tabs that play sound to continue to play sound you could just run a small, short, silent sound file on page load and then do whatever you want for the life of the tab.

<comment><USER19> I think you could mitigate the 'play short/silent sound on page load'. Each tab would have a max volume limit. The limit can be increased automatically while the tab is open, but it must stay within some % of that limit when the tab is not open. The default limit would be 0. You can add some restraints on the length of sound too, like require a sound to play for at least a second before adopting its new volume for the tab.

</comment></comment></comment></comment></comment></comment><comment><USER20> Why don't they just give you the option to only play the video/audio when the tab is active?

Facebook already auto-starts some videos only when they are in view, so the technology is available.

If you want streaming audio, you just have to open up a new window.

<comment><USER21> Exactly: let the user decide "I need this thing to keep playing music/video in the background." But unless he enables it, play it only when it's topmost.

</comment></comment><comment><USER22> Does a similar feature exist in firefox? Or even as an addon?

Several searches couldn't yield a result.

<comment><USER23> So, I've got a little hacky patch that _kind of_ does that, but only for <video> and <audio>, because we don't have access to flash's source code, so we can't hook into it. This (only <audio> \+ <video> \+ Web Audio these days) is not really hard to do, I can guide a volunteer if someone feels like writing the patch (or part of it, even).

I've been thinking about dll interception stuff to make it work with flash, but I'm not sure if it can be done reliably.

<comment><USER24> > I've been thinking about dll interception stuff

In Win7 you get audio volume per process option when you click the speaker tray icon. So the OS does know the process source of audio

Since Chrome is multi-process I think it's easy to identify the noisy process.

Just an idea.

<comment><USER4> He's talking about Firefox here. :)

But anyway, major browsers (other than IE) -- even when tab per process -- only use a single Flash process for all tabs, so you cannot distinguish at the operating system level. Chrome is now able to show audio indicators because Flash is embedded via a new kind of plug-in (Pepper) which allows them to track it.

<comment><USER25> Since Firefox knows which tabs embed Flash content and whether the Flash plugin process is playing audio, Firefox might be able to guess which tab is playing Flash audio. For example, if there is only one tab with Flash content. :)

<comment><USER4> But due to ads, if many tabs are open then many will have Flash on them. Run Chrome, install my MuteTab extension ([http://www.mutetab.com/](http://www.mutetab.com/)), open a few tabs, and look at the extension popup to get an idea of how pervasive Flash is. (However, if you also run Adblock then it becomes a little more reasonable, since you've greatly reduced the number of tabs playing with Flash on them.)

Yeah, you could look at which tabs were recently opened when sound started playing. But then once sound is playing, you won't be able to detect if another tab that plays sound was opened. And the sound might have come from a tab that had been open for awhile.

</comment></comment></comment></comment></comment></comment><comment><USER26> Finally! I have wanted this feature since I started using tabs, about 10 years ago. Yet another win for Chrome.

</comment><comment><USER27> This only goes half way, sadly: noisy tabs will only be shown with the symbol in your Window list if they are the active window in that tab. If you have another tab open, it's that tab that will appear there, so you will still have to hunt down all your windows and then look for a tab with the symbol.

Disappointing.

Similarly, I can't believe it's still not possible to name an entire window, e.g. "Hacker News", which would contain all my open HN tabs.

</comment><comment><USER28> Alternatively, we could have designed the web so that autoplay of audio/video isn't a thing.

<comment><USER29> Autoplay provides better UX for some sites, though.

</comment></comment><comment><USER30> Wait, did they just release the Aura/ChromeOS desktop as a Metro app?

<comment><USER31> It kind of seems that way. I was wondering the same thing so I tried out - sure enough, launching it in metro mode and it looks like what I expect ChromeOS would be (I don't actually have a device running ChromeOS), with an apps bar, a clock, and "start/apps" button.

</comment></comment><comment><USER32> what's with the submission's titles ? This one is obviously marketing aka false. I'm using opera on linux to browse the web, how a new feature in chrome affects me ?

<comment><USER4> The submission title comes from the source webpage. (Look at the source URL for context.) It says "everyone" because the previous announcement was that people using the beta version had this feature.

</comment></comment><comment><USER33> So, assuming I'm using Chrome, how do I download malicious file now? (Assuming, I know it's malware but still want to download it, say, for further dissection.)

<comment><USER34> wget. curl. Seriously, if you're dealing with malicious files, you don't want some massive software package interacting with it. Attack surface area, and all that.

</comment></comment><comment><USER35> I noticed this not too long ago. It's a very welcome addition since there are so many audio/video ads that autoplay these days.

</comment><comment><USER36> This is Brilliant! My reasons to continue using Firefox are reducing by day :(.

</comment><comment><USER37> This works well in Ubuntu too.

</comment><comment><USER38> Excellent. Could have used this feature when AOL acquired the Huffington Post.</comment>


6to5 (ES6 transpiler) is now renamed Babel - <AUTHOR> https://github.com/6to5/6to5

<comment><USER2> See [https://github.com/babel/babel/issues/568](https://github.com/babel/babel/issues/568) for why this name change happened.

</comment><comment><AUTHOR> The website still points to [https://github.com/6to5/6to5](https://github.com/6to5/6to5) yet the link now redirects to [https://github.com/babel/babel](https://github.com/babel/babel).

Good move because even if it started with ES6, it now supports more (e.g. some ES7 features and JSX) so the name didn't fit anymore.

<comment><USER2> Haven't finished the rename yet.

</comment></comment><comment><USER3> There's a well-known, widely used, Python project called Babel ([http://babel.pocoo.org/](http://babel.pocoo.org/)).

I find it quite annoying when people name their project without consideration for other people in the open source community.

Other historical examples include Mozilla Firebird, which was renamed to Thunderbird after loud complains of the Firebird database community, or Twitter's Fabric, which clashes with Fabric ([http://www.fabfile.org/](http://www.fabfile.org/)), another Python project.

<comment><USER4> I don't think it's as inconsiderate as you imply. Babel (as in tower of) is a fairly well known biblical reference that I'd expect to find used in all sorts of project names related to translation.

Indeed, a quick googling shows there's a Python Babel, an Eclipse Babel, an Emacs Babel, a TeX Babel, a Babel language, and an Open Babel for chemistry. I'm sure the addition of this new JS Babel won't inconvenience anyone too much.

If anything, I think the real issue is open source projects overplaying their hand and insisting they own certain words or ideas that they have no real claim to, particularly when there isn't any actual chance of confusion. The Firebird renaming wasn't so much sensible precedent as a good example of a Mozilla saying "okay please stop yelling, we'll do whatever you want".

<comment><USER5> I recall there have been multiple, incompatible tools for managing gettext- style translation files called "Rosetta".

</comment></comment></comment><comment><USER6> I was wondering about this today; it makes sense to change the name eventually anyway. Once ES6 starts being implemented more widely by actual browsers, the old remit is likely to be obsolete.

</comment><comment><USER7> 2015 most original project name award.

</comment><comment><USER8> so how is this different from say TypeScript?

<comment><USER9> once browsers/JS engines supports ES6/ES7, we don't need babel. But thats not the case with Typescript. But we never know. Babel may start supporting ES8. It can be never ending process.

<comment><USER10> I'm sure Babel will be supporting ES8 and beyond. The rename wasn't just about ES6/ES7 confusion, I believe, but to reflect the expanded ambition of the project to be a general transpiler from the edge ES version to the version with the widest browser and Node.js/io.js support.

However, TypeScript's goals aren't as different as you might think. It is a strict superset of JavaScript, and although it adds features that are not yet on the standards track, there are proposals to add optional static typing via annotations to JS. Given that Google are also interested in such a capability, given Dart and AtScript, it seems probable that types will eventually become part of the language.

<comment><USER9> agreed. But don't think Dart will last long considering Angular community went for a new AtScript over Dart...Also I am preferring to use Babel is in future I can remove that dependency which not the case with TypeScript or AtScript..</comment></comment></comment></comment>


Ask HN: Are there open source course hosting platforms? - <AUTHOR> <comment><USER2> Hello pixelfeeder: Can you pls reach me at sercan at sercanyilmaz dot com

</comment><comment><USER3> [https://sandstorm.io/](https://sandstorm.io/)

<comment><USER4> How is sandstorm a course hosting platform? It's more like cloudron and yunohost...</comment></comment>


Reader Discretion Advised: On profanity and the sublime in poetry - <AUTHOR> https://www.poetryfoundation.org/articles/146097/reader-discretion-advised <comment><USER2> You can go back much further than they do here to find truly delightful and extraordinarily rude poems.

Catullus 16[0](composed roughly 60 BC) is the obvious example, whose first line was not given in English translation until some time after 1950. (and look, i'm doing the same thing right now!)

[0]: [https://en.wikipedia.org/wiki/Catullus_16](https://en.wikipedia.org/wiki/Catullus_16)

</comment><comment><USER3> Did this piece censor e.e. cummings? So in a piece about using profanity in poetry, some words are still too profane to print as is?

<comment><USER2> i noticed that too.</comment></comment>


Could Less Air Travel Due to Covid-19 Coronavirus Degrade Weather Forecasts? - <AUTHOR> https://www.forbes.com/sites/marshallshepherd/2020/03/24/could-less-air-travel-due-to-covid-19-coronavirus-degrade-weather-forecasts/#763fb7cc2c0a <comment><AUTHOR> "Sensitivity studies at ECMWF have shown that removing all aircraft data degrades the short-range wind and temperature forecasts at those levels by up to 15%, with significant degradations at all forecast ranges up to seven days."

And as-of 24 March, down to about 35% of usual. And likely more to now.</comment>


Ask HN: How do you figure out your market size? - <AUTHOR>

They say you should figure out your market size. How does one go about this exactly? For example... my product is a time tracking application. I know there's a big market, but how would I go about figuring exactly how big that market is? <comment><USER2> how to market size: step 1: figure out how many people use similar applications or the # of people you could foresee using it (step 1a: include multiple purchases per product / multiple people per product) step 2: multiply by the monetization over the time frame, use research/values from industry standards or competitors</comment>


How do I create a topmost window that is never covered by other topmost windows? - <AUTHOR> http://blogs.msdn.com/b/oldnewthing/archive/2011/03/10/10138969.aspx <comment><USER2> This is a classic _arms race_ \- an escalating conflict over a _positional good_ that by definition can only be enjoyed by one entity at a time. Other positional goods include popularity in high school and military superiority (from which we get the term "arms race" to refer to the escalating efforts of multiple agents to achieve the good).

Generally, the only effective way to address an arms race is regulation: an encorceable arms treaty, say, or a strict school uniform.

</comment><comment><USER3> Yeah yeah, whatever. I don't want to hear about your problems. Having problems is a sign of incompetence.

Just write me a program that always wins. While you're at it write me a program that always prints the biggest number. I expect both by tomorrow.

<comment><USER4> I can't help you with that first one, but

      perl -e 'while(1){print 9;}'

A bit of a cheap shot as that is basically printing infinity without actually calling it infinity, but I'm going to float this by on a claim that your boss won't know the difference. "It's just not done yet, sir! Keep waiting. It's printing a _really big_ number."

</comment></comment><comment><USER5> I was going to chime in with my own ideas about solving this -- you can play this game all day long and I'm sure inciting that kind of discussion that was the intent of the author -- but this story about one particular request accidentally illuminates a key problem with Windows: too many developers and programs competing for one set of user eyeballs.

You'd think that would be a good thing, but far from it. What happens is that every little developer writing any kind of tiny little app 1) wants money, and 2) wants to remind you how cool they and their app is by annoying you in various ways. Sadly, the annoying part is usually done without any unkind intent on the developer's part at all.

I have no problem with the money thing, aside from it being annoying to pay for code that was just copied from MSDN and stuck in a wrapper, but the blinky-beepy-gotta-be-on-top thing is driving me nuts.

The author uses an example of one guy who "knows" he wants the screen all the time, but the real underlying architectural problem is much more subtle (and worse) than that. Every program wants to tell the user something, maybe only once a month or so. That'd be fine, if there weren't dozens if not hundreds of programs running on the average setup.

I've been using Ubnutu for the last couple months, mainly because Windows has become more like a video game, an XBox, than a serious operating system to me. When I started my windows O/S up the other day to do some multimedia chore after only two weeks without running it, _every program I ran had updates and notices for me to attend to, including Windows itself_. That made a 5 minute job take 2 hours, including the 15-minute boot time which was drug out because once I bought a Sprint modem, Sprint in its infinite wisdom wants to intercept and rework my network stack so they can "help me" use my computer better. This involves Sprint needing updates, resetting my wifi preferences every time it runs, forcing itself to run every time on boot, rewriting my access screens, and doing something with memory, thread, and priority allocation during boot that takes 5 minutes and can only be described from the user's standpoint as evil. And for all of my invective, I know they didn't mean it that way! As far as I know, they are honestly trying to provide assistance (assistance with lots of branding and subtle control over user behavior. Sigh)

This is crazy. Windows has become like the web, only with one web page with everything you might ever want to do on it crammed in there and you can't navigate away. Somebody at Microsoft had better get on the ball and get rid of atomic updates, garbage collection, and vendor/programmer-induced interruptive bullshit. (Yes, there are ways to eliminate GC and the nightly install crapfest, but that's a longer story) If they don't, Google is going to eat their lunch. I'm afraid you can't have one O/S that is both extremely complex and consistent across millions of different use-cases. At least not structured like this.

<comment><USER6> I agree this is crazy. Windows really needs a central infrastructure for:

\- program updates (polling for them, asking the user)

\- user notifications (grouped, not with a zillion different icons)

\- running tasks at certain times/conditions (yes, windows has this, but many apps nevertheless insist on running their own scheduler service)

\- license server? (or at least, a way to launch these on demand, no need to run adobe/flex/matlab/bla license servers when the program is not running)

Right now, every program wants to install its own background process (some very bad ones want even more than one). This is very very annoying: programs that are not running at the moment shouldn't steal memory and CPU time by running something in the background.

It's too easy to turn your fresh windows installation into a ghetto. And it's not only fishy backwater programs that do this, the big commercial applications are just as guilty (yes, Adobe, I'm talking about you...).

Linux distributions and MacOSX have these things figured out for ages...

<comment><USER7> Last time I used OS X it didn't have program updates or user notifications figured out. I had to use Growl for the latter, and apps had to individually use Sparkle for the former, which is basically the same as the Windows situation. I agree that Windows should have centralized solutions for these problems, though.

<comment><USER8> Growl and Sparkle are the defacto standards for notifications and program updates on Mac. They are very nice because I can control how I am notified through Growl settings (no notifications) and apps tell me there is a new update when launching (or polling while use). A recent version of Sparkle has a new option that I think is genius, update on quit. This allows me to tell the app that when I quit it, install the update. That way I don't have to wait for the app to update and restart when I just want use the app for 5 minutes.

One problem with Growl is that if you don't have it installed, some apps provide their own notifications. Then when you don't want any notifications like me, you have to configure that in each app. So it is best to install Growl and disable notifications.

Now with the app store on Mac, Sparkle might not be used as much in the future because the app store will handle updates.

Overall, I think the OS X developer community has worked this out fairly well on their own.

</comment></comment></comment></comment><comment><USER9> A solution would be to use DirectX and request exclusive access to the screen. It's rather unlikely any of the other apps are doing this.

Using DirectShow it would not even be complex - could be done in just a few lines of code.

<comment><USER10> You just... don't get it, do you Scott?

(There is no way to win this game by giving the best solution to it. The better you get, the worse you get.

In other words: the only way to win is not to play the game.)

<comment><USER11> dll inject all the other programs?

rootkit and write your own display driver?

<comment><USER12> Erase Windows and it shitty ecosystem and start over with code that the end user can modify and improve?

</comment></comment></comment></comment><comment><USER13> Alas, I still work with a program where someone had the bright idea to play tricks like this and, as a result, you can get error messages stuck completely behind an unmovable topmost window.

Thankfully, there's one slightly obscure way to get Windows to move a window that's completely behind another window, but many people don't realize there's anything back there in the first place.

<comment><USER14> And what is that obscure method?

<comment><USER13> Right click it from the task tray and select move. Your mouse cursor will jump over to the top of the window (even if you can't see the window) and you will actually move the item you selected rather than the topmost window you appear to be clicking on.

I called it "slightly obscure" because while the move option is perfectly normal, I had no idea that you could still select a window that was completely behind other windows.

EDIT: And no, "close" wasn't among the options for that error.

<comment><USER15> Or you can select the window with alt-tab, press alt-space to open the window menu, press 'm' to select 'move' and then use the arrow keys.

I use this all the time when windows go completely off screen and you can't grab them with the mouse. That can happen in all sorts of surprising ways.

<comment><USER16> And once you've moved it with an arrow key, you can then move it freely with the mouse until clicking.

</comment></comment></comment></comment></comment><comment><USER12> The solution to this problem is to not let programs realize that there is a such thing as a window manager. "You have an x by y rectangle to draw in. There is no such thing as `other programs'. Enjoy."

Then the _end user_ can script these complex interactions in a way that pleases him. Composibility is better than following an arbitrary spec.

UNIX gets this: I can program all my window interactions in Haskell. When mplayer wants to be fullscreen, it gets it. Everything else... nope, sorry.

(Also, I have a solution! Run all the non-super-important programs in a VM. Then minimize the VM when your super-important program wants attention. This even composes properly when a more-super-important program comes along!)

</comment><comment><USER17> Code injection (SetWindowsHookEx, WH_CBT) and API hooking allows to filter out other programs requesting topmost display.

But this is intrusive. And it can be bypassed by other vendors, whether they workaround it by using other APIs/tricks or unhook their own process' APIs at runtime themselves.

As said here in this thread, the only way to ensure full control is to patch the kernel (Window management related syscalls). And even there it's tricky to be exhaustive.

VM is the safe way to go.

</comment><comment><USER18> I suppose it's issues like this that make tablet PC creators choose a single- tasking (or rather, single-app-controls-the-screen) model?

</comment><comment><USER19> I believe XCode (I may be confusing the interface with RunRev Cards thing from a while ago though) has a simple check mark to make window a top most window on Mac. But I'm not sure if they can be scaled. Some of the Logic Pro and Final Cut tools function like this, where they are abovee everything.

<comment><USER20> What if two applications has checked this box? That's the core of this article.

</comment></comment><comment><USER21> Please don't.</comment>


Millionaire Chess to Hit Las Vegas - <AUTHOR> http://www.nytimes.com/2014/09/01/us/millionaire-chess-to-hit-las-vegas-in-gambit-to-raise-games-profile-with-big-prizes.html

<comment><USER2> Poker got lucky because it can be televised, giving it a lot of exposure. It combines luck, bets, all-in, you may lose it all in one bet, you can get a lucky hand and still blow it, you can bluff. But the real trick that made it popular was the camera showing each players hands. We knew we could play better than them, we could fold, raise, go all-in from our own houses and lose nothing just having a good time.

Chess can not provide that. Sorry to burst your bubble.

Now if you're looking for another kind of game to hit the jackpot, try dominoes. Four players, seven tiles each, same camera to immerse the viewer in the game, and the same million dollars jackpot.

There you may have a winner.

<comment><USER3> This is exactly it.

Spectating games as entertainment need to have information which the audience is exposed to but is hidden from the players.

Real time strategy games have some of this appeal, however at the very top levels players scout so well that they basically have perfect information anyway. I watched the grand final of the IEM Starcraft 2 tournament this weekend, in the last game Flash took a ninja base (hidden across the other side of the map) and the commentators were making a huge thing about it. It was scouted with in roughly 3 minutes.

It was impressive in the same way that a poker player correctly calls a good bluff, but it made me realize that unlike poker you don't often get that "oh no, don't do it you idiot!" feeling that you get when you watch a poker player walk straight into someone's trap.

<comment><USER4> Realtime computer analysis combined with clear diagrams is that hidden information (along with relevant info about approaches each player is prone to).

But even more important is an interested and informed audience. Chess kibitzing has been popular for centuries, much more so than people watching card games. Thanks to the ubiquity of online game access, there are more people than ever before who play chess somewhat regularly.

</comment></comment></comment><comment><USER4> I'm surprised they don't have more players in the lower sections. 59 players (1) are dividing 50 prizes totaling $112,000 (2) in under 1600, for example.

When large(r) prizes are on the line, players who are rated below their true playing strength show up in lower sections hoping to win.

(1) [http://millionairechess.com/news/registration- list/](http://millionairechess.com/news/registration-list/) (2) [http://millionairechess.com/tournament/prize- fund/](http://millionairechess.com/tournament/prize-fund/)

</comment><comment><USER5> "Loonie-Toonie (named for the two sides of the Canadian dollar coin)". No, a Loonie is 1 dollar coin and a Toonie is a 2 dollar coin.

</comment><comment><USER6> I wonder if Magnus Carlsen will be there.</comment>


Ask HN: I think I am being black listed - <AUTHOR> I was fired from my previous job at a corp and now after spending months searching I am unable to find a new one. I believe the reason is that I am being black listed. Has anyone gone through a similar situation? or do you know someone who has been recruiting and got told from a superior or a colleague not to hire certain person ? <comment><USER2> I'm not familiar with some kabal that keep a blacklist. However, potential employers will check references and will call previous employers. If you've burned bridges, that could be coming back to haunt you. I believe one question that can be asked is, "would you rehire this person?" If the answer is "no," then you could have a big barrier.

Smaller startups/companies are less likely to check with your previous employers. Maybe try more of them.

When you say you can't find a new role, are you not getting any interviews or are you not landing the jobs post interview? It could be that you need to work on your interview skills. Or it could be that you need to retool your skill sets. There is not enough info to say much on that.

Again, I've never experienced black listing on the interview side. But, depending on the community, people do talk. If someone knows people at a previous employer of yours, they might ask them about you.

Also, it matters how you present being fired to the potential new employer. It is viewed as more risk to take on someone who got fired vs someone who left on their own terms.

Best of luck.

<comment><USER3> I'm not a hiring manager by any means, but if OP wants to check if this is the case, couldn't he have a friend call up his employers/references to see if one of them is saying bad things? I think it may be a smart way to go.

</comment></comment><comment><USER4> What industry is this? Some industries do blacklist. IT doesn't

<comment><USER5> I am software developer, with experience doing web applications.

<comment><USER6> Just so you know, in case you actually are the OP, you used a throwaway account in your original post but your (maybe) real account in this reply. (But looks like this real account is relatively new and has very few posts anyway)

</comment></comment></comment><comment><USER7> What were you fired for? Could be the reason

</comment><comment><USER8> Have you tried applying for remote jobs?</comment>


Signalling System No 7 - <AUTHOR> https://en.wikipedia.org/wiki/Signalling_System_No._7 <comment><USER3> While a bit unergonomic to work with, the .7 protocols uses ASN.1 for defining and describing a lot of the protocols and messages.

ASN.1 have some nice ideas that the developer community has failed to grok, reverting back to simpler ideas that are more immediately rewarding, such as hand coding a lot of code that blasts away text based messages that may or may not be understandable to the recipients because, hey it works on my machine.

The core idea is that there is a language that defines the abstract message content, and there can be several encoders - binary, text, compact binary, depening on needs and computing and bandwidth requirements.

There are also some support for defining the criticality of any extensions to a protocol, to inform recipients if the can disregard an additional part it does not understand or if it's critical.

This is not an afterthough as json schema, but the core idea.

<comment><USER4> Part of the issue might be a variant of FUTON bias ([https://en.wikipedia.org/wiki/FUTON_bias](https://en.wikipedia.org/wiki/FUTON_bias)): can I easily get the official text of the ASN.1 standard, without having to register somewhere and/or pay hundreds of Euros?

<comment><USER3> I think it specifically is not used because it's a more complex idea that requires a lot of initial effort and mental work until the benefits are apparent.

I guess it's just like most other "actually better than x" languages and standards out there.

In this case it's also not the nicest language to read and it's a bit dated.

It would be nice with an ASN.2 though...

<comment><USER5> The idea is similar to protocol buffers. Tooling is a significant barrier to entry.

\- The commercial offerings are very expensive.

\- it is a little hard to read, but very difficult to write correctly.

\- it is difficult to parse the spec and code generation is non-trivial, and although Basic Encoding Rules are relatively straightforward, Packed Encoding Rules are not. So rolling your own is daunting.

\- There are some open source tools but until recently they were unable to parse the latest language features used in LTE. I am convinced it is designed to be hard to parse to protect the encumbents.

\- Unless you are using C/C++ (most tools generate these) you have to somehow generate FFI bindings, which you'll want to automate for a large spec which requires parsing the spec...

<comment><USER6> > \- There are some open source tools but until recently they were unable to > parse the latest

> language features used in LTE.

> I am convinced it is designed to be hard to parse to protect the encumbents

I don't think so, and I work for a small company doing LTE products. LTE uses a rather small subset of ASN.1, and it's not a big problem to handle it really. It's not a barrier at all, it's even making things simpler compared to a less formal definition of protocol messages. I experienced informal protocols, with the result of wasting a lot of energy on interoperability tests due to different interpretations. ASN.1 in LTE gets rid of this.

IIRC, ASN.1 was created as a specification language written by humans for humans. Only later on it became used for direct code generation. So its design was not meant to be easy to parse for a compiler, although it's the way it's used now.

There are several reasons to the lack of open source tools IMHO. A full ASN.1 compiler is a complex project, so that's some barrier to entry: not everyone can invest the needed time. The fact that any application typically need only a subset of the full ASN.1 means that there's likely a lot of partial /ad-hoc implementations, so not very fit to open source. Then there is a cultural aspect leading to a lack of interest: ASN.1 is old and from a specific, non mainstream culture (the telco world). The new kids are just busy with JSON or protocol buffer, even if ASN.1 works very well. It's software, we're all busy re-inventing our own better wheel ;)

<comment><USER5> I didn't mean to say LTE is deliberately complex, compared to older specs it's very simple. I was thinking more of ASN.1 itself which even in later editions added features that only made the parsing and codegen harder, though they made authoring simpler.

Specifically I was looking asn1c but IIRC it could not handle parameterization used in S1AP - maybe 3 years ago? It might have changed right after I tried, I didn't follow it up and took a different route.

I think we agree, the problem is worsened when you need to support multiple ASN.1 protocols, including MEGACO, S1AP, RANAP, H.323, GSM MAP, TCAP etc - <USER2> need a tool that provides a stable and unified API for all protocols. And if you want that, today you still have to pay for it or struggle with multiple tools with different APIs.

Don't get me wrong I like ASN.1 _very_ much. Text based protocols (esp. over TCP) have caused me more headaches than ASN.1 and ad-hoc binaries protocols combined. HTTP/2 is worth it just for ditching text. The rest of it is just icing :-)

</comment></comment></comment></comment></comment></comment><comment><USER7> > In February 2016, 30% of the network of the largest mobile operator in > Norway, Telenor, became unstable due to "Unusual SS7 signaling from another > European operator".

Supposedly this happened because the other telco had hired a pentester...

<comment><USER8> Yep. I can confirm.

<comment><USER9> And that's how you get lawsuits.

</comment></comment></comment><comment><USER10> Built before the idea of bad actors was a thing..

<comment><USER11> Most certainly not. One of the purposes of the move to out-of-band signaling was to stop the various "box" attacks on the tone-based in-band signaling used previously.

They were very aware of bad actors, they just assumed that their private signaling network would remain private and thus any bad actors with access would be easy to identify and deal with. They never imagined the situation we have today with tens of thousands of telephone service providers and even large customers of those having direct access to the signaling network.

<comment><USER10> Let me try again. Built before bad actors that were the state, or someone smarter then hackers on the outside, were a thing. SS7 once you are on net with it is pretty wide open.

</comment></comment></comment><comment><USER12> Sadly heralding the end to an incredible run of blue boxing..

<comment><USER13> Fortunately it took a while for ss7 to be adopted on all international trunks.</comment></comment>