A Hoare Logic for Rust - <AUTHOR> http://ticki.github.io/blog/a-hoare-logic-for-rust/ <comment><USER2> Nice. It makes sense to try to formalize the semantics of Rust's new intermediate representation, MIR. It's much easier to get unambiguous semantics at that level. All name issues such as shadowing are gone, type issues have been resolved, and operations are machine-level unambiguous (not "+", "32 bit unsigned add").

An old project I worked on, the Pascal-F verifier,[1] from the early 1980s, worked in a similar way. We took the output from the first pass of the compiler, which was something like Java bytecode, and verified from that.

I found some old 9-track tapes of the sources recently, and I'm going to run them through a data recovery service in Morgan Hill next week and see if I can bring the system back to life. It's a historical curiosity, but should be fun to play with on today's machines. It was just too slow in 1982. Meanwhile, I brought the original Boyer-Moore theorem prover back to life and put it on Github.[2]

Some of our lessons learned were:

1\. Integrate the verification statements into the programming language. Don't try to do it with comments. You want the language's regular syntax, type and variable checking to apply to the verification statements. We added the keywords ASSERT, ENTRY, EXIT, MEASURE, STATE, EFFECT, INVARIANT, DEPTH, and PROOF, EXTRA, and RULE.

2\. Make verification program-like, not math-like. For example, if we wanted to verify the structure of a tree, we would add fields for a back-pointer and a tree depth to the data structure each node. We'd put in all the code to maintain them, and verify that the forward pointers and back pointers were consistent and that child objects always had a greater depth than their parents. This would all be done by writing ordinary-looking code with ASSERT statements. But the new data fields would have the EXTRA attribute, and the code manipulating those fields would have PROOF in front of it. This meant it was there only for verification purposes. No executable code could depend on that data, so it could all be stripped out for execution.

3\. Use two theorem provers. One prover was an Oppen-Nelson decision procedure. This is fully automatic proving for integer +, -, multiplication by constants, inequalities, conditionals, logic operators, structures, and arrays. This subset of mathematics is decidable and there's a fast, complete decision procedure for it. That knocks off all the easy stuff automatically. Easy stuff usually includes subscript checks and overflow checks. The second prover was the Boyer-Moore prover, which is semi-automatic; you have to propose lemmas to help it along. This is hard. By using ASSERT statements to narrow the area of trouble, you could reach the point where you had two successive ASSERTs, one of which should imply the other, but the Oppen-Nelson prover couldn't prove it and there was no previously proved rule on file to cover it. But now the problem had been narrowed to an abstract mathematical problem - prove the second ASSERT from the first. Someone could work on that in the Boyer-Moore prover and then export the rule for use in the main system. This provided a separation of functions - you could have mathematically oriented people to struggle with the theorem prover, independent of the code. You could reuse that rule elsewhere, and change other code without having to re-prove it. Today, we'd put files of useful theorems on Github. We never let the user add "axioms". That opens a huge hole.

4\. Expect to do a lot of compiler-type analysis and bookkeeping as part of the verification process. For example, the static analysis to determine that a function is pure ("pure" means x = y implies f(x) = f(y), and no side effects.) is something to do as a routine compiler operation. Potential aliasing has to be discovered. Do this using compiler techniques; don't dump it into the theorems-to-be-proved mill, where it's much harder to give the programmer good error messages.

5\. Don't fall in love with the formalism. Too much work in verification has been done by people who wanted to publish math papers, not kill program bugs. This is about creating bug-free code. I think people will get this now, but when I was doing this, everybody else involved was an academic.

[1] [http://www.animats.com/papers/verifier/verifiermanual.pdf](http://www.animats.com/papers/verifier/verifiermanual.pdf) [2] [https://github.com/John- Nagle/nqthm/tree/master/nqthm-1992](https://github.com/John- Nagle/nqthm/tree/master/nqthm-1992)

<comment><USER3> > Nice. It makes sense to try to formalize the semantics of Rust's new > intermediate representation, not MIR.

I'm no expert, but according to this: [https://blog.rust- lang.org/2016/04/19/MIR.html](https://blog.rust-lang.org/2016/04/19/MIR.html), MIR /is/ Rust's new intermediate representation.

<comment><USER2> Oops, put an unwanted "not" in there. Yes, formalize MIR. Don't try to formalize the source language.

</comment></comment></comment><comment><USER4> Nice description and first steps. Ideal moves would probably be the following:

1.Modifying front-end for Frama-C flow or similar tool to take a subset of Rust with specs, generate the VC's, and feed them to supported provers. He seems to be doing something similar but Im sure there's some good tools to build on.

2\. For manual and high-assurance, embed Rust into Simpl/HOL that seL4 used. Do an AutoCorres tool with that. You now have ability to pull similar effort with translation validation to machine code. Next, extend COGENT to generate Rust subset Simpl supports. You can now do, like their C example, a whole filesystem functionally that outputs verified Rust or machine code. Optionally extend the COGENT tool with QuickCheck, QuickSpec, etc esp where tests/specs can translate to Rust to. Quite a foundation for other Rust developments to build on. Including redoing Rust compiler in COGENT at least for certified, reference version. ;)

</comment><comment><USER5> Very cool. I've long that that having formal program verification built in to a language and run as part of the compiler is the way forward. Giving the pre and post-conditions for a function is much more reasonable than dropping down to a verification tool like Coq or TLA+. I know that AWS uses TLA+ to reason about the correctness of algorithms.

<comment><USER6> Design by Contract: [http://c2.com/cgi/wiki?DesignByContract](http://c2.com/cgi/wiki?DesignByContract)

Which is a key element of the Eiffel language ( [https://en.wikipedia.org/wiki/Eiffel_(programming_language)](https://en.wikipedia.org/wiki/Eiffel_\(programming_language\)) ).

SPARK Ada also includes this concept of pre/post conditions: [https://en.wikipedia.org/wiki/SPARK_(programming_language)](https://en.wikipedia.org/wiki/SPARK_\(programming_language\))

I haven't programmed in the latter, but I'd like to. Since I'm often in the maintenance end of the software cycle I don't have much opportunity (professionally) to introduce new languages (new tools, yes, but not new languages).

I have a coworker who _thinks_ we do this with asserts (in C and C++), but it's only half the battle. The asserts only tell us that our exercised version of the program (through our non-comprehensive testing) hasn't failed pre/post- conditions. It's helpful, but not sufficient.

<comment><USER7> Design by contract has nothing to do with formal verification, though.

<comment><USER6> Respectfully, I have to disagree. Design by contract is, or can be, a component of formal verification. If it's all you've got, it's probably better than nothing.

Design by contract brings the concept of using preconditions, postconditions, invariants, and other contractual objects into the design and implementation of the software. These are able (depending on implementation) to be analyzed statically by machine or by hand, or dynamically during testing (with some systems the tests can be automatically generated to exercise the contracts). This may not be the limit or ideal of formal verification, but it is certainly a part of it and a good measure forward compared to the typical approaches used in our industry.

EDIT:

Let's settle a pertinent question first: Is Hoare logic a tool/approach for formal verification? If it is, then design by contract (being largely based on the concept of Hoare logic) is also a tool/approach for formal verification.

The potential points of disagreement, as I see them, are that Hoare logic is _not_ a tool for formal verification, or that design by contract is not based on Hoare logic. Is there something else that I've missed or are these the points of disagreement?

<comment><USER7> Design by contract forces you to be explicit about your _intended_ preconditions and postconditions. But "intended" isn't the same thing as "actual". _Verification_ is making sure that the preconditions and postconditions _actually_ hold, in every possible case where the statement (or procedure or whatever) could be reached.

EDIT: Hoare logic is a tool for formal verification, indeed. DbC is not, though.

<comment><USER6> We're talking around each other. What is your definition of formal verification?

<comment><USER7> Proving that a program meets its specification.

<comment><USER6> Is Hoare logic a tool in that process?

<comment><USER7> Yes. Hoare logic's inference rules define which Hoare triples can be "legally" derived. The programmer's task isn't only to provide a Hoare triple (which by itself is just an assertion that a program meets a specification), but also to provide a _derivation_ of that triple (the actual proof of the assertion). Design by contract is akin to giving a Hoare triple, but never giving its derivation.

<comment><USER6> Design by contract, is it based or not based on Hoare logic?

<comment><USER7> It's not. In DbC, you have preconditions and postconditions, but no means whatsoever to actually prove that, whenever the procedure's initial state meets the precondition, its final state will meet the postcondition.

<comment><USER8> > In DbC, you have preconditions and postconditions, but no means whatsoever > to actually prove that, whenever the procedure's initial state meets the > precondition, its final state will meet the postcondition.

Except many implementations of design by contract execute the postcondition check and raise an exception if it's not satisfied, so I don't think your statement is correct.

<comment><USER7> The very reason why you need to raise the exception is because the postcondition _doesn 't_ hold. The point to verification is to make sure the postcondition _holds_. So I stand by my original assertion: DbC isn't verification.

<comment><USER4> If I were to categorize it, I'd call DbC _formal specification_ that, combined with Eiffel or SPARK tools, can be used to verify that interfaces or code maintain those specific properties. It's a partial form of formal specification and verification that's still useful.

It doesn't have to be fully specified or proven to count as formal verification. Partial verification is a thriving field.

<comment><USER7> Yep, that's perfectly reasonable.

</comment></comment></comment></comment></comment></comment></comment></comment></comment></comment></comment></comment></comment></comment></comment><comment><USER9> Very nice! Is work being done to produce a formal, verifiable specification?

 _edit_ : I'm particularly interested in formal specifications and their use in open source software.

<comment><USER10> I know of a few efforts to better specify Rust in addition to ticki's (OP):

* [https://github.com/nikomatsakis/rust-memory-model](https://github.com/nikomatsakis/rust-memory-model) * [http://plv.mpi-sws.org/rustbelt/](http://plv.mpi-sws.org/rustbelt/) * [https://kha.github.io/2016/07/22/formally-verifying-rusts-bi...](https://kha.github.io/2016/07/22/formally-verifying-rusts-binary-search.html)

The first isn't using formal methods AFAIK, the second is, and the third is as well, but I think they're targeting safe code only.

<comment><USER11> Also the Rust compiler had Typestate analysis at one point of its development. [1]

[1] [http://marijnhaverbeke.nl/talks/rustfest_2016/#4](http://marijnhaverbeke.nl/talks/rustfest_2016/#4)

<comment><USER12> Typestate is basically all subsumed by the uniqueness system. The two systems are equivalent, so in a sense Rust still has typestate.

</comment></comment></comment></comment><comment><USER13> This is a pretty good general introduction to Hoare Logic.

</comment><comment><USER14> Tony Hoare meets Graydon Hoare :^)

<comment><USER11> I always wondered if they are related.

<comment><USER15> They are not.

</comment></comment></comment><comment><USER16> Heh, just realized my [https://github.com/Ericson2314/a-stateful-mir-for- rust](https://github.com/Ericson2314/a-stateful-mir-for-rust) is a lot more like separation logic than I knew.

</comment><comment><USER17> Very broken for me on Chrome. All the equations are randomly overlapping words.

(Version 53.0.2785.116 m (64-bit))

<comment><USER18> Probably your connection to cdn.mathjax.org is somehow disabled or blocked.</comment></comment>


A N.Y. Nurse Dies. Angry Co-Workers Blame a Lack of Protective Gear - <AUTHOR> https://www.nytimes.com/2020/03/26/nyregion/nurse-dies-coronavirus-mount-sinai.html <comment><USER2> Some research the Helpful Engineering group did a couple of weeks ago included an interview with a doctor who claimed that Covid had less than 1% mortality, but that health care workers had about 4% because of how heavily they are exposed to it (source is a google doc in the slack group).

Every health care worker deserves a massive, massive bonus this year for sticking their necks out for us all

<comment><USER3> Does this account for age? If not, it's more than a 4x risk multiplier since few health care workers are 80+.

<comment><USER4> I've read it's because of viral load which is correlated with exposure.

</comment></comment></comment><comment><USER5> A few important notes for those who skip TFA and come straight to the comments:

> _The nurse ... said Mr. Kelly had not used protective equipment, even though > he regularly helped nurses on his team with hands-on care._

> _... an outside consultant ... said she last saw Mr. Kelly at work the week > of March 9, interacting with patients and hospital staff, wearing neither a > mask nor any protective gear._

<comment><USER6> Its also important to note that there _wasn 't enough_ protective equipment.

> "I'm also very angry with the Mount Sinai Health System for not protecting > him. We do not have enough PPE, we do not have the correct PPE, and we do > not have the appropriate staffing to handle this pandemic. And I do not > appreciate representatives of this health system saying otherwise on the > news."

<comment><USER5> > _In an email, a hospital spokeswoman, Lucia Lee, disputed the claim that the > hospital had not furnished protective equipment to its staff. "This crisis > is straining the resources of all New York area hospitals, and while we do — > and have had — enough protective equipment for our staff, we will all need > more in the weeks ahead," Ms. Lee said in the statement._

</comment></comment></comment><comment><USER7> We all know that PPE is a major problem, but the New York Times article left so many unanswered questions. Some of them are listed:

1\. All nursing staff should have their temperatures recorded at least at start and end of shift. Did this nurse maintain such a temperature log? 2\. When did he start to show symptoms? 3\. The article stated the he had asthma. Was he self-medicating with albuterol and / or steroids? 4\. When did he go on the ventilator? 5\. Did he develop pneumonia? 6\. What exactly was the cause of death? 7\. Should we allow people with underlying respiratory problems to work in this environment?

</comment><comment><USER8> Also germane: [https://www.vox.com/2020/3/26/21192191/coronavirus-us-new- yo...](https://www.vox.com/2020/3/26/21192191/coronavirus-us-new-york- hospitals-doctors-nurses).

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

</comment><comment><AUTHOR> This man was a very fit 48 year old, who had trained as a dancer before he became a nurse. Unusual and it shows that Coronavirus is different from other virus-related respiratory infections.

[https://data.ibtimes.sg/en/full/35116/kious- kelly.jpg](https://data.ibtimes.sg/en/full/35116/kious-kelly.jpg)

<comment><USER9> >> His sister said he had asthma but was otherwise well.

<comment><USER10> yes, this article left off the word "severe", but other articles did not editorialize that way.</comment></comment></comment>


Ask HN: allow titles to link to discussion? - <AUTHOR>

I typically skim the discussion for an entry before reading the linked-to entry itself.
When using a touchscreen device, it's difficult to target the small comments link on the summary pages and I often end up accidentally tapping the title instead.
Does anyone else think it would be a useful to have titles click-thru to the discussion? i.e. "Link titles to discussion: yes/no" <comment><USER2> <http://ihackernews.com> is pretty decent for mobile devices, it could be better, but its a vast improvement on the main site.

<comment><AUTHOR> Cool, thanks.</comment></comment>


Ask HN: Is Hacker News Blocked by China's Great Firewall Now? - <AUTHOR> <comment><USER2> Looks like it. No idea if that's new [http://www.chinafirewalltest.com/?siteurl=news.ycombinator.c...](http://www.chinafirewalltest.com/?siteurl=news.ycombinator.com)

<comment><AUTHOR> Yeah it's new :(. Interesting, wonder what changed their mind.

<comment><USER3> Any platform that allows debate about anything related to china is doom to be blocked by china.

Open and honest discussion leads to truth. And truth about china is not allowed in china.</comment></comment></comment>


Ask HN: What websites or apps do you miss from the old web (2003-2010) era? - <AUTHOR> Back in the days, when surfing the Internet was a thing, a lot of different services lived. As years passed those services were closed or their features were placed in bigger more consolidated services (example: there used to be a lot of calendar apps, now we have google calendar in g-suite or in Polish internet there used to be a service called digart.pl which was a kind of myspace+dribble for graphic designers and other visual artists). Which of those services do you miss the most and would like to see coming back? <comment><USER2> Nothing in particular, save from the phenomenon of long form blogosphere, but in general the information dense websites. Now it's like some giant button click adventure to get where I want because of 'UX design' or latest craze, and I do hate it.

</comment><comment><USER3> I just miss the sense sincerity and optimism.</comment>


Update on Trumpet Winsock / Peter Tattam donation drive. Amnesty, 200+ donors. - <AUTHOR>

Last week I posted here[1] and at reddit, asking people to donate to Peter Tattam in recognition of his pioneering role in the development of the web. Later I set up a site at thanksfortrumpetwinsock.com.
Peter and I have been sending emails back and forth. I have some news for HN.
1. Peter estimates that more than 100 (correction: 200) donations have been made to his Paypal account.
2. In view of the donations, Peter has decided to issue an amnesty[2] on copyright infringement by individual users, up until the end of 2012.
3. While I contacted two Australian ISPs, on my own initiative, asking them to donate, Peter has asked me to stop doing so as it may complicate existing and future legal matters, or alternatively annoy those ISPs who did pay.
4. However Peter is OK with receiving donations from non-ISPs and non-publishers. If you are working at a web company of any size, from Google right down to a brand-new YC startup, consider getting your company to donate as a thankyou for the economy Peter's work made possible. Such donations are very welcome and I will write it up on the site. My favourite former employer, The Frontier Group, have been first to do so.
You can get in touch with me by email (see my profile) or by visiting the thanksfortrumpetwinsock.com website and leaving a comment.
[1] http://news.ycombinator.com/item?id=2282875 [2] http://tattsoft.com/index.php/news/3-latest-news/17-mar-2011.html <comment><USER2> Clickables:

<http://thanksfortrumpetwinsock.com/>

[1] <http://news.ycombinator.com/item?id=2282875>

[2] [http://tattsoft.com/index.php/news/3-latest- news/17-mar-2011...](http://tattsoft.com/index.php/news/3-latest- news/17-mar-2011.html)

<comment><AUTHOR> The site is currently getting more visits from Slashdot than HN. I guess nobody likes updates! :D

</comment></comment><comment><USER3> While a great cause, I don't think Peter will receive these donations. I'm sure PayPal will find a way to classify Peter as a terrorist/threat/<insert absurd reason> and suspend his account, like they've done with many before him.

</comment><comment><USER4> actually it looks like more than 200 donations so far.... A VERY BIG THANK YOU, folks!!!

<comment><AUTHOR> Thanks for the generous amnesty.

</comment></comment><comment><USER5> It's tough earning contract programming dollars in Hobart so be generous :).

<comment><USER4> LOL. yep - pretty quiet here. I earn most of my cash from other states of Australia

</comment></comment><comment><USER5> " it may complicate existing and future legal matters"

Hope that's not going to be one of those "I invented the CD" type legal cases...

<comment><USER4> of course not! There is nothing pending or even on the boil. Copyright law is just very tricky to manage. If you don't explicitly state which rights you wish to relinquish you can end up losing rights by default. The complication I was referring to was that I have very few (if any) records of organizations and distributors who correctly licensed the product. Peter T</comment></comment>


App Developers – Is there anyway to track iOS8+ notification center widgets - <AUTHOR> App Developers - Is there anyway to track iOS8+ notification center widgets actions/engagements??<p>Any help would be appreciated! <comment><USER2> log the action to a shared defaults or container and send it when the parent app opens.

<comment><AUTHOR> Cheers ebgraham! - Sure, Good hack. Only problem is then, you can't see the numbers separately ?</comment></comment>


Lyft's Radical Experiment in Charging for Free Parking - <AUTHOR> https://www.bloomberg.com/features/2017-lyft-parking-experiment <comment><USER3> This is quite bizarre to me. In city centers, very few if any office buildings in any industry offer free parking. My company in Seattle will subsidize our ~280/mo parking by 100. I have never heard of a building in downtown Seattle charging under 200 a month for parking, even outdoor surface lots are around 200 monthly. Is it not a bit obvious that free parking dramatically encourages driving over public transit? Parking demand must grow as a company grows, while its parking structure generally is fixed. Increasing the cost is the only way to effectively manage the situation.

The alternative from my company versus the parking subsidy is a free unlimited public transit card. Most people choose to take either light rail or bus, and choose their living situations so as to take advantage of those options.

<comment><USER4> The city center of San Francisco (for public transit purposes) is a small, eastern portion of the Market St corridor, several miles from the site being discussed.

</comment></comment><comment><USER5> What if experiment is conducted like this:

1\. 53 top bidders pay and get their spot.

2\. total money collected is shared between everyone who doesn't park

<comment><USER6> 1b. Renormalise bids based on each employee's salary.

<comment><USER7> Then an enterprising but low paid employee can rent their spot to a more highly paid employee and make a solid profit.

<comment><USER8> Great! Why should rent-seeking be reserved for the rich?

<comment><USER7> We should seek to find solutions that eliminate rent-seeking altogether...

</comment></comment></comment></comment></comment><comment><USER9> My wife's company just pays people bonuses to take the bus/ride a bike/walk/run/whathaveyou to work. Employees get a small bonus literally every day they utilize alternative transportation. It's not much for each commute, but over the course of a month, it ends up being a few hundred bucks for some people. My wife used to drive to work, but is now riding her bike. I am 99% sure she loves the bike commute so much now that she wouldn't revert back even if the small bonus got taken away.

<comment><USER10> It's great ! But it's also very saddening that people need incitation from companies to stop driving to work and can't make such healthy, environment- friendly decisions themselves.

<comment><USER11> Driving is awesome, I am way better protected in the event something goes wrong, and I don't have to care about the weather.

This isn't popular here, but I have been indoctrinated by environmental bullshit as a kid and teen and I am done with that. I pay high gas taxes and if that can't more than offset the environmental impact whomever is in charge should be fired for incompetence.

<comment><USER12> >I pay high gas taxes and if that can't more than offset the environmental impact whomever is in charge should be fired for incompetence.

Edit: comment predicated on the assumption that this is in California, where Lyft is located

No, you don't pay high taxes, and second, political forces are such that gas taxes can not be raised to what they should be to prevent your "firing for incompetence." The politics don't work that way.

</comment></comment></comment></comment><comment><USER13> Just an observation: Why aren't Lyft's employees using Lyft's ride-sharing service to get to work?

I know that's not the point of the article, but if your company owns ~25% of the market share [1], wouldn't it make more sense to instead give your employees "Lyft credits" (or whatever it's called), and have them use the service on a near-daily basis.

[1] [https://www.usatoday.com/story/tech/news/2017/06/13/uber- mar...](https://www.usatoday.com/story/tech/news/2017/06/13/uber-market-share- customer-image-hit-string-scandals/102795024/)

<comment><USER14> Personally, I think Lyft credits would be bad, for a number of reasons.

First off, I'm pretty sure that the value of the credit would be taxable, in the same way that wages are taxable.

Specifically, see IRS Publication 15B Section 2, the sub-section on Transportation (Commuting) Benefits ([https://www.irs.gov/publications/p15b/ar02.html#en_US_2017_p...](https://www.irs.gov/publications/p15b/ar02.html#en_US_2017_publink1000193740)). Lyft credits don't to me appear to be one of the four "Qualified Transportation Benefits" (although paid parking _is_). Nor would it be a de minimis benefit.

(To be clear, I'm talking US tax law, as a US corporation.)

So, if it's going to be taxed, then you (as the Lyft employee) now have something which you _have_ to use, or else you're going to lose money (in that you've paid taxes for a benefit you're not using). That's a pressure that I'd personally not want to be under.

Similarly, I wonder if a permanent discount (all Lyft employees get 50% off) would also be taxable. Since this is all electronic, I don't think it would be that hard to track an employee's Lyft usage, so I don't think the de minimis exception would apply here. Then, come each paycheck, I'd have to remember "Oh, right, I have less money this pay period because I did all those extra Lyfts over the weekend."

Continuing the thought experiment, if Lyft did do this, then I most definitely would _not_ want to work or live near Lyft's offices. The reason is, any time I'd want to use Lyft, I'd be competing with all of the Lyft employees who are also using the service. I could see that increasing the chances of surge pricing switching on. That could maybe be minimized by nudging drivers to congregate around Lyft's office, but that would then deprive other areas of drivers.

So too many problems, in my opinion.

<comment><USER15> _Lyft credits don 't to me appear to be one of the four "Qualified Transportation Benefits"_

Lyft and Uber have already solved this. They've partnered with a bunch of the employee-benefit debit-card providers so that people can use employer-provided commute benefits. The guidelines as I recall from when I saw it announced are that you have to use Lyft Line/Uber Pool and vehicle has to have at least 6 seats, and both Uber and Lyft have tweaked their apps to ensure that they recognize benefit-debit cards and only let you use them on rides that meet IRS guidelines for commute benefits.

<comment><USER14> Ah! I see, and yes, that would qualify in the "Transit Pass" section, although it's really at least seven seats (the driver can not occupy one of the six seats). More specifically, it's "In a vehicle that seats at least 6 adults (not including the driver)".

It seems the details are here: [https://help.lyft.com/hc/en- us/articles/115002073608--Line-C...](https://help.lyft.com/hc/en- us/articles/115002073608--Line-Commuter-Benefits)

That makes me wonder, although the problem is solved from the technological & regulatory sides, how many of those types of vehicles are there. I guess that's why this option is only available in four cities.

</comment></comment></comment></comment><comment><USER16> Relevant to a lot of people here -

California's Parking Cashout law requires your employer to reimburse you what they would spend on your parking if you don't use it. This applies in the (somewhat narrow) situation where you not parking has a direct impact on what the company spends - i.e. they rent a spot in a garage.

When I worked in Santa Monica it was a couple hundred bucks a month - <USER2> was nicer anyway, too.

[https://www.arb.ca.gov/planning/tsaq/cashout/cashout.htm](https://www.arb.ca.gov/planning/tsaq/cashout/cashout.htm)

<comment><USER17> So wait, employers have to track how you get to work each day? Or just classify you as "always" vs "never" parking?

<comment><USER16> You just don't get the spot. In my case I just didn't get the card that enabled access to the garage. It's not applicable where the employer just has one big lot and isn't paying per space, generally.

</comment></comment></comment><comment><USER18> The story telling and gifs are really outstanding. Congrats to Bloomberg. What's not so nice is ... it's completely not accessible. If you achieve that - hats off

<comment><USER19> I liked the concise way the story was told - the text was short, to the point, without much fluff. On the other hand, I was actually a bit annoyed by the whole comic thing: why is a comic necessary to present a rather simple idea to an adult - tt felt kind of condescending. The drawings didn't really add anything to the story, and I found the animations distracting. ...now get off my lawn :)

<comment><USER20> I wish the animations could be switched off. They're distracting and don't add anything.

Didn't we just have that discussion on the compression thread?

</comment></comment></comment><comment><USER7> This is not a very radical idea. It is known that people are averse to losing things they already have (even in exchange for equal or greater benefit). I'm glad it worked out for Lyft without too many ruffled feathers, at least according to the comic. I'm glad this sort of idea continues to get media exposure. It needs it.

An example, it is absurd to me (and most urbanist types) that Manhattan still has free street parking and that all the East River bridges are free. Congestion pricing in Lower Manhattan was on the table during the Bloomberg era, but never made it through. It should have.

<comment><USER21> Congestion pricing proposals for publicly-owned infrastructure always run into the same problem: taxpayers paid for the building of the infrastructure, they already own it. Charging what the market will bear effectively turns the infrastructure over to the relatively wealthy to use. Making people watch as the rich get exclusive use of the infrastructure every taxpayer paid for never goes over well.

<comment><USER22> But what if charging what the market will bear means the rich are paying for the cost of the thing _and then some_?

Anyway, my impression is that opposition to things like congestion fees come more from affluent commuting suburbanites than the poor (who probably already rely on transit anyway).

<comment><USER20> Doesn't help if I don't get to use it..

<comment><USER22> But what if you don't need to because the money goes to fund alternative methods?

<comment><USER21> Will those alternative methods also be congestion priced? Are you just setting up an infinite regression?

If there's broad demand for increased capacity, why not just raise everybody's taxes to pay for it, and let everybody use it?

<comment><USER7> No, because the point is that cars specifically are Pretty Bad for cities (noise, air quality, inefficient use of space, dangerous) and should be discouraged (and economic incentives work). Mass transit is generally far less bad and should be encouraged by economic means.

NYC sort-of does this by not using zone fares, so long trips from far-away areas (read: poor parts of the city) cost as much as a brief trip through a rich area.

</comment></comment></comment></comment></comment></comment></comment><comment><USER23> The facebook character had the right answer. These companies have products that create more value than running a paid parking lot... why would you trade an employee on a product like that for a few dollars in parking fees.

<comment><USER24> The point of the article is that by making something scarce free, the company was in effect "rationing by the queue", an inefficient way to handle things. Those unwilling to get there early had a bad time.

Instead they said, "Hey, we were giving the average employee $100/mo in parking. We're gonna keep doing that in the form of cash. But, to fund that extra 100 you're now getting in cash, anyone who wants to use the lot has to pay its market value." In short, instead of providing a "flakey parking availability" they provided cash. It's a lot (a lot... get it?) like selling the lot and giving the proceeds to employees.

This isn't always the best idea (sometimes, similar schemes can be socially unjust), but from an efficiency standpoint, it's hard to beat.

I hear what you're saying about pissing people off, but this should do the opposite. Sure, some folks might irrationally like jockeying for position or be early risers. But the company never intended to say "this benefit is for early risers". The intended it as a benefit to all employees and now it is.

<comment><USER25> The parking spots were not "free", employees were paying for them with their time, leaving their homes extra early and risking circling the neighborhood looking for extra spots if the lot was full. That time was worth money to the drivers and the growing price of a spot was evidence of that.

As they increased their employee count, the time cost would have increased as well and employees unwilling to spend that time on trying to get parking would take another mode of transportation. From the linked comic it sounds like the employees that spearheaded the program were trying to prove a larger point that cities could raise public transit funds by charging for all parking spaces in a city. I don't think this program was at all about making things more efficient at Lyft.

<comment><USER26> It was also about making things more efficient at Lyft. Some people really needed cars (mostly because they had kids) but couldn't find spots unless they arrived super early. This change pushed some people to stop using their cars.

</comment></comment></comment></comment><comment><USER27> Why not just treat the assigned parking a standard perk (considered in the overhead cost of an employee) and offer a cash bonus to those who elect to not have a spot? That would maintain the perception of the parking being free, while allowing for a reduction in usage based on the same value assessment described in the article.

<comment><USER28> That's how a number of companies in Austin do it.

</comment></comment><comment> brian-armstrong I think a big issue with parking is that people might not even consider that there are alternatives to driving. The car is just a little too comfy. But if everyone is so far from work that they need to drive to get there, that creates so many congestion and environmental issues. This seems like a real weak spot for our culture.

</comment><comment><USER29> Am I crazy or is it ridiculous that a ride-sharing company didn't give their employees free Lyft credits to alleviate the situation? You would think that would be one of the perks of working for Lyft. I am also confused as to why it was called free parking. Is employee parking not considered as part of compensation? I've worked at offices before that used public lots and the employer purchased parking passes for everyone.

Also, a bit off topic, but biking is not a panacea for everyone. I tried cycling my 18 mile commute along the PCH for 1.5 years. By the end of it, I was really turned off by biking. I like to play basketball, hike, and go open ocean swimming. I finally quit cycling to work because I had dead legs due to musclr fatigue and couldn't enjoynmy preferred recreational activities.

Also, I sweat very easily. Luckily my office at the time had a shower.

<comment><USER30> > Am I crazy or is it ridiculous that a ride-sharing company didn't give their > employees free Lyft credits to alleviate the situation? You would think that > would be one of the perks of working for Lyft.

I'm surprised that/if they didn't have that perk before the parking brouhaha, but even if they didn't, non-parkers got $150/mo just for not parking there, so they could certainly spend that on Lyft rides.

Though considering that a month is around 23 working days, that means they only have a little over $3 per ride, which won't get them to and from work every day in the month... unless they take Line and live within walking distance anyway...

<comment><USER29> Even though it seemed to work out overall for the company, it seems like employee carpooling via Lyft Line would be a less risky solution, especially at the end of the day when you all can be picked up at the same location.

</comment></comment></comment><comment><USER31> It "worked" because people paid or found an alternative? Who's going to quit their job over parking?

Seems like the standard formula for a business news article now is to repackage common sense ideas as something new and exciting.

Charged for parking? Let's make a comic about how innovative that was.

<comment><USER32> Not really, if they're free and you just randomly give them out then it doesn't allow the power of the market to sort out who really wants a spot vs. who doesn't really care.

<comment><USER31> How is paying with money any more fair than paying with time?

I'd personally prefer random distribution over selling to the highest bidder. Does every single thing really have to be for sale?

<comment><USER33> Money isn't consumed, the money paid can be passed out to other employees as raises. Whereas time spent waiting in line is a dead-weight loss. (Ok, it's not a 100% loss since you might be able to do something somewhat fun with that time, e.g. maybe you listen to a podcast while you're sitting in the parking lot. But it's not an ideal way to spend your time, and there's no way for anyone to get their time back)

</comment></comment></comment></comment><comment><USER34> Gave me an idea of dynamic pricing for public parking, like the surge prices of ride sharing services. Maybe this already exists somewhere?

If there are only a handful spots left, the price would be really high. If a parking lot is not that popular it will automatically be cheaper. Environmentally friendly cars could get a discount.

Instead of reserved parking spots, the spot would know for instance if it's never used during working hours and the prices would adjust to optimize the fill rate of all spots. Residents would get a discount for spots close to home.

I guess most cities have zones with different fees, and often free parking on weekends and nights. This would instead adjust it automatically, maybe even adjust for popularity of a particular group of spots.

<comment><USER22> IIRC San Francisco has experimented successfully with dynamic pricing.

The main problem with such initiatives is that most drivers reflexively despise them, and will create a big political stink.

</comment></comment><comment><USER35> Tolls continue to represent an effective way of managing congestion in large cities but it's only if the community will be willing to accept it. Better transportation alternatives need to be provided in addition to the introduction of tolls to appease everyone.

</comment><comment><USER36> Doesn't the university down the peninsula charge everyone monthly/yearly parking fees to reduce driving and encourage people to take public transit/bike or live on campus?

Most FinDi commuters have to pay for their spots. It's widely used and well known stick to get people to carpool or take alternative means to work.

<comment><USER14> It's Stanford, and yes to most of that, but no to the "live on campus" part. 8-)

</comment></comment><comment><USER37> With so many companies offering employees public transportation passes for commuting, I'd love to see Lyft/Uber create the ability for employers to offer free/reduced fare office commutes (within a determined range). AFAIK the only option they have is to give blanket monthly credits.

<comment><USER38> My girlfriend is starting a PhD at UCSF, and if they have to commute between 11pm and 6am the school will pay for the Uber/Lyft ride up to a certain amount. I'm not sure how it's facilitated but it's a good idea for sure.

</comment></comment><comment> ryan-allen In the City of Melbourne in Australia, most parking that you could use all day is not free. You can either get in by 10am and pay $20 per day, or pay around $100 per day if you arrive after that. There's still heaps of cars in the city.

</comment><comment><USER39> You need about $250 minimum in credits to make a $12/day commute viable via lyft line. If they gave everyone $250/month in credits, I bet the parking issue would of reduced itself significantly.

</comment><comment><USER40> Obviously parking is not free. You can just look at the paid lots all around. Or look at the assessment of the headquarters purchase.

You might as well "investigate" whether free work shuttles are actually free.

</comment><comment><USER41> Had an idea while reading the story: if I worked for Lyft during that time, I would have created an app that made it simple to rent out your "owned" spot to fellow employees. It would be easier and faster than the Facebook group, with built-in payment.

The cost for the app? Parking space owners have to let me use their space for one workday a year, with a prearranged date of my choice. If everybody signed up, I would have a space almost every day, free of charge.

<comment><USER42> Do you mean "let me use their space for a week"? There's only 53 parking spaces, and approximately 260 working days per year.

</comment></comment><comment><USER43> This program isn't free for Lyft -- @ 1,000 employees and $375/space/month for each of the 53 spaces, the monthly program cost is $35K per month (with the subsidies net of revenue), or 420K a year in cash burn!!!!

IMHO, they'd be better off shutting down the lot and using it as a picnic area / common area for everyone to enjoy.

<comment><USER44> I'm not sure I follow your numbers or your logic - Lyft charged their employees, where is the $35k/mo cost to Lyft coming from?

<comment><USER45> Presumably that's originally coming as part of the total cost of renting the building+mandatory parking lot. :)

</comment></comment></comment><comment><USER46> some cities experiment with dynamic parking pricing [http://sfpark.org/how-it- works/pricing/](http://sfpark.org/how-it-works/pricing/)

</comment><comment><USER47> Love the animated comic format of this post. Well done, Bloomberg

</comment><comment><USER14> I work at "the university down the peninsula" ([https://news.ycombinator.com/item?id=14975881](https://news.ycombinator.com/item?id=14975881)). Stanford—in my opinion—has a similar situation.

We are affected by the "General Use Permit" ([https://gup.stanford.edu/the- project/reference-documents](https://gup.stanford.edu/the-project/reference- documents)) which, among other things, limits the number of parking spaces that campus can have.

As a result, Stanford has a number of programs to encourage people to commute:

• Paying for a Caltrain Go Pass ([https://transportation.stanford.edu/transit/free-transit- inc...](https://transportation.stanford.edu/transit/free-transit- incentives/caltrain-go-pass)) and VTA Eco Pass ([https://transportation.stanford.edu/transit/free-transit- and...](https://transportation.stanford.edu/transit/free-transit-and- incentives/vta-eco-pass)).

• Running the AE-F ([https://transportation.stanford.edu/marguerite/aef](https://transportation.stanford.edu/marguerite/aef)) and EB ([https://transportation.stanford.edu/marguerite/eb](https://transportation.stanford.edu/marguerite/eb)) lines to the East Bay.

• Coordinating AC Transit for the two Dumbarton Express lines ([https://dumbartonexpress.com](https://dumbartonexpress.com)), and the U line ([https://transportation.stanford.edu/transit/free-transit- inc...](https://transportation.stanford.edu/transit/free-transit- incentives/line-u)) lines.

• Various car- and van-pooling options ([https://transportation.stanford.edu/rideshare](https://transportation.stanford.edu/rideshare)).

And there's also the various Marguerite lines (X Express & Limited, Y Express and Limited, and S) that supplement normal service. There're also other things that I've forgotten about.

All of those options are pretty well used, and it shows that for the main use cases, it is possible to "charge for free parking", but I think the important thing is that you do have to have some external constraint.

In Lyft's case, it was a lack of spaces. In Stanford's case, it's a negotiated restriction. Either way, that avoids the "Facebook alternative", where you don't have any outside reason you can point to.

The best example of this is the Stanford Research Park: If you're a Stanford employee who works off-campus (and the Stanford Research Park counts as off- campus), then you don't qualify for the $300 yearly credit, even if you use bus/train/vanpool all the time (see [https://transportation.stanford.edu/commute-club/about- commu...](https://transportation.stanford.edu/commute-club/about-commute- club/are-you-eligible)).

So I guess the lesson (or at least the correlation) is, you need some external restriction, or else "most" people will drive!

</comment><comment><USER43> You can't pay for that type of advertising.

</comment><comment><USER48> Demand is a fallacy because they compel you to come into the building.

If they allowed everyone to choose to work from home, or from another location, then it would have something interesting to say about it.

But the demand is artificial in that context, forcing people to exist at that office, and yet not allowing them the means to do so with their mode of travel of choice by not providing sufficient parking.

<comment><USER49> > yet not allowing them the means to do so with their mode of travel of choice > by not providing sufficient parking

They also don't provide a runway and hangar space, nor a marina, and probably not a SpaceX landing pad either! People can't commute with their mode of travel of choice!

Jokes aside, even ignoring the broader impacts of more driving and just focusing within the company itself, providing limited free parking is "stealing" from those who don't drive (the company is spending resources/opportunity cost on something they don't use), and even on those who _have_ to drive on certain days (they're pushed to getting to work at ridiculous hours to be able to park). With offices where it is actually feasible to commute by public transport (like Lyft's office which seemed to be ~0.5 mile from the nearest BART station and less from many bus routes) and when working at a transportation company, there are alternatives to driving one's own car, so putting a price on parking encourages people to treat it as the scarce resource it is.

<comment><USER50> > providing limited free parking is "stealing" from those who don't drive

This doesn't seem right - it assumes that the resources going toward parking would be otherwise spent on employees. If money was taken from employees as a payroll deduction, then "stealing" might apply, but until the money is promised to employees, its not employee money, it belongs to the company. There is no theft that I can see.

</comment></comment></comment><comment><USER51> Asking me to pay for parking is the same as saying "please don't come here unless you absolutely have to".

And that's exactly what I do - I almost never go anywhere that makes you pay for parking. Downtown, or to visit congested cities for example. Or to small stores on roads with parking meters.

Are those places happier without me? Maybe. Depends on if they value whatever economic activity I would produce over their poor traffic management.

Would I use public transportation? After trying it for a while in a city that is widely considered among the top 5 in the world for public transport my answer is a resounding: NO!

Public transport is horrible, even when it is the best humans are able to make it. I feel bad for those people who have no other choice, and I am determined to never live in a city that requires it.

<comment><USER52> The only city in the world that I've been to that has what I would consider "good" public transport is Hong Kong. In comparison, the NY subway system is dirty, beat up, hot, infrequent, slow, and full of aggressive panhandlers.

<comment><USER53> I had a great time on Tokyo public transport (excluding rush hour on the busiest lines, but even that was fun in a way).</comment></comment></comment>


Spain and Catalonia Wrestle Over .Cat Internet Domain - <AUTHOR> https://www.nytimes.com/2017/09/22/style/cat-domain-catalonia.html? <comment><USER2> > _In a letter to ICANN, the foundation said that the Spanish authorities had > asked it to "block all .cat domain names that may contain any kind of > information about the forthcoming independence referendum."_

This seems like a really strange thing for the Spanish government to do. Even if PuntCAT took down all separatist web from .cat, it seems like a certainty that you're going to create a local political embroilment, and the websites that were removed are just going to uncensor themselves by moving to .com/.net/.org/etc., and probably enjoy more popularity and attention than ever before.

You should probably only try to engage in this level of totalitarianism if you actually have the means to censor the internet for the vast majority of your citizenry. China and North Korea are in good positions to do it. The government of Spain is not.

</comment><comment><USER3> The Spanish-Catalan argument going on at the moment should be of serious interest to sociopolitical hackers. The central government in Madrid is pulling out all the stops to prevent the holding of a symbolic referendum for regional independence, but it seems to be backfiring.</comment>


Going under the hood of Inbox - <AUTHOR> http://gmailblog.blogspot.com/2014/11/going-under-hood-of-inbox.html

<comment><USER2> > If you're building an application that (a) has significant UI independent > client logic, (b) is targeting multiple platforms, (c) must not compromise > on user experience and polish

Right, fun fact: this is what you see on inbox.google.com under firefox

"Inbox only works in Google Chrome. More browsers coming soon."

<comment><USER3> Maybe it's forgivable for now because it's still in Beta and is invite-only.

<comment><USER4> To be fair it does come off as a bit preachy to blog about your great crossplatform story under the circumstances.

<comment><USER5> I believe the cross-platform comment is about supporting iOS and Android.

<comment><USER4> Come on~

If you can't get your application working on more than one browser, how am I supposed to take your talk about working on _multiple platforms_ seriously?

Post content: good, interesting.

Timing: not ideal.

It's like Australia at the G20 in 2012. Didn't really make them any friends with that either.

</comment></comment></comment></comment></comment><comment><USER6> > allowed many of those clicks to be handled right within the browser without > waiting for the server at all. Fast forward 10 years and this architecture > is the norm, having been adopted by most websites

GMail made async HTML popular and well known. AJAX got popular in 2005 around the same time. Many media articles often cited GMail as a good AJAX website back than. The reality was, GMail used invisible iframes for async data transfer and not AJAX. One reason was browser backwards compatibility. Memory leaks were an serious issue in early GMail days, especially IE 6 users complainted a lot. Gmail switched to AJAX around 2007. Interesting is also that AJAX was added to IE 4/5 for OWA (outlook web access) in ~1999 but it was little known and got popular as Mozilla completed the API reimplementation in 2004/5.

<comment> wh-uws Whats the source you have for this information?

<comment><USER6> My own experience. I coded async DHTML back in 2002, with iframes or async XML loading (since 2005 named AJAX). I debugged GMail back then (the first version with the blue rounded corners, the same design as Google Groups and Google Code)

It's incredible hard to find older web resources from 10 to 15 years ago, as most bookmarks don't work anymore. And some current websites sadly try to rewrite the history.

e.g. Aaron mentioned it: [http://www.aaronsw.com/weblog/ajaxhistory](http://www.aaronsw.com/weblog/ajaxhistory) and you can search through Slashdot.org, (former) digg.com and web.archive.org

Both GMail (2004) and Google Maps (2005) used iframes for the first years. There were still many users with older browsers without real AJAX support - Firebird/Firefox/Mozilla Suite/Netscape, Safari(?) and some Opera. Only IE 4/5+ and current Firefox/Mozilla browser supported real "AJAX" in late 2004. Iframes were supported by most browsers.

</comment></comment></comment><comment><USER7> this is cool!

it would be fun to try compiling from..

      - java -> j2objc -> objc2j [1]
      - objc -> objc2j -> j2objc

and compare the outputs :)

[1] [https://code.google.com/p/objc2j/](https://code.google.com/p/objc2j/)

<comment><USER8> Check if theres a fixpoint..

</comment></comment><comment><USER4> Interesting. ...and here I was thinking gwt was dead in the water these days.

Cant say Im in any particular hurry to go down that path again (used to use gwt, it was a headache in production), but there is certainly something to be said for sharing a single language for both server and client.

<comment><USER9> > [gwt]... was a headache in production

can you shed some light as to what the headaches were? I m quite interested in real world usages of gwt, but i don't often hear much about its use (despite the fact that i know it's still being used quite a lot, just internally in companies).

<comment><USER4> Let me caveat anything I say as being 3 years out of date.

The biggest and most annoying issue was that it generated a per-browser file for each variation of the compiled javascript. This resulted in a set of hashed javascript filenames to deploy in production, and while more efficient (why load IE specific code on safari?), it had some down sides:

\- Every tiny change resulted in new files with new names. If you're deploying using binary diffs this is just a no go, because you have no way of knowing which of the 7 hashed filenames from last time matches the filename this time. You have to redeploy the entire application basically, for a typo. For large applications, this sucked.

\- When a new browser version comes out, if you're lucky it 'just works'. I recall an update to IE where we were 'not lucky' and had to rebuild and redeploy every application to support the new version of the browser working _at all_.

\- 3rd party javascript things had a mysterious tendency to work fine locally and then break in the live environment. I recall never figuring this one out, but something we were doing with GWT & the dom would sometimes just break, but would work fine locally if you ran the debugger. A lot of 'randomly remove and change code until it works'. :/

There are other issues with GWT that ultimately led us to stop using it (googles lack luster support, other new tools that were more designer friendly, new developers having to install a very specific toolset to be able to work on projects being the big ones), but those were the annoying production issues I personally encountered and had to deal with.

Not show stoppers by any means, but I'm certainly in no hurry to go back.

</comment></comment></comment><comment><USER10> I really like this approach. I never liked any cross platform solution such as Cordova or Xaramin. The approach google is taking is a best-of-both-worlds approach:

\- Latest uix on the native platforms \- Shared model layer in the apps

I would love them to create sample projects, or to provide a framework for doing this kind of stuff

<comment><USER11> How is that different from Xamarin? Inbox is written in Java and Xamarin apps are written in C# but I think the idea is very similar - cross platform logic, native UI. Why would you prefer the approach Google took but dislike Xamarin's approach?

<comment><USER10> From what i know, Xaramin only has the ui elements that both platform supports. You are writing one UIX for both platforms, and thus you can only use the common-denominater uix. Which limits your uix.

</comment></comment></comment><comment><USER12> I would love to get some feedback on the technical details.

Why did they have to create a data model in Java and then cross compile that into other languages for their various platforms?

Why not just create a RESTful API on top of Gmail, and then just build clients to consume that API?

What's the difference between the two approaches? What is the benefit to doing it the way they did it?

It feels like sending JSON down the wire, would be quicker than waiting for some real-time compilation to be done and sent to the client.

Am I missing something?

<comment><USER13> you are. There is no real time compilation going on. What they are doing is writing model code once in java and then use J2ObjC once in order to transpose it in ObjC. The interest of this approach is obviously to only write model code once. Main benefits : -same implementation everywhere, you can't hit a road block because one platform implemented its model in a very different way, so they need to refactor it entirely for new feature X. You also can't have a platform specific model bug. -Less time spent coding the model.

I work on a very large scale mobile app where we have completely separate clients hitting the same REST API. We already thought about such a move (or something similar, like a common c++ module) but so far we continue to have totally separate web, Android, iOS and WP applications : \- the cost of a migration to such a solution is huge for a big app \- any bug in the generated code is the promise of a nightmare to debug and solve \- I am not sure it would save us so much time. The 70% figure does sound impressive though, so I might be wrong. \- our product managers are obsessed with features and don't care about the technical side of things. It is already very hard to restrain their shitty ideas like iOS design everywhere or never do any maintenance because there are always urgent new features. So, even if we wanted to, we would never get them on board with such a big refactoring.

</comment></comment><comment><USER14> Just for curiosity, have you guys considered [http://www.robovm.com/](http://www.robovm.com/) Or is it that it wasn't available when you guys started of with inbox?

</comment><comment><USER15> I am more interested in the UI components used by web Inbox. Initially I thought it's Polymer, but after inspecting the code, it seems to be custom- rolled CSS. Perhaps its a new Closure Library with an implementation of Material Design?

</comment><comment><USER16> I wonder why they went to all that effort when they could have just used Xamarin and one of several IL to JS traspilers instead. Probably just a standard case of Not Invented Here syndrome.

<comment><USER17> I am guessing they just like Java?

Otherwise, yes, they could have written the shared logic in C#, or C++, or a few other languages, all of which are portable between the platforms they want.

There might also be history, I believe gmail has been using Java/GWT, so it was a natural decision for them to continue using Java?

It is a little surprising on the performance side, though. I would expect C++ to be faster when compiled/transpiled to all three relevant platforms (iOS, Android, Web), compared to Java similarly compiled/transpiled. But maybe most of their time is spent rendering anyhow, and little in the shared code.

<comment><USER18> Gmail as written in 100% Closure Compiler code, Closure Compiler was invented for Gmail.

Simple fact is, Google is a Java oriented company. Inbox uses lots of components and shared code across the company that are based on Java. To use C# or C++ to do it would rewriting a lot of code that already exists.

JS performance is not the gating factor for the Web client in most cases, it's rendering and startup (code size). We run expensive calculations off the main thread in a Web Worker anyway.

The translation of Java to Objective-C could have been to C++ as well. I started prototyping something a while ago that does such. Objective-C makes more sense, because for iOS, the front end developers get to consume 'idiomatic' code that looks like they had hand-written it and it meshes well with other tools, and would work with Swift too.

<comment><USER19> The Apps (+ Ads, Android, Social, & DevTools) side of Google is a Java- oriented company. Search, Geo, Infrastructure, and Chrome are all very much C++-oriented. (Inbox is very much an Apps project, so of course they would lean toward a Java stack.)

<comment><USER18> That's true, Google has very large codebases of C++, Java, and Javascript. But the C++ code base cross-compiled to JS via emscripten wouldn't help us much on Inbox since most of the interesting bits are very backend oriented.</comment></comment></comment></comment></comment>


Good vibrations: acoustic technologies in cars - <AUTHOR> https://physicsworld.com/a/good-vibrations-acoustic-technologies-in-cars/ <comment><USER2> Very interesting indeed: "In fact, more small-particle pollution comes from the action of car brakes and tyres than from the exhaust fumes of current internal-combustion engines – a testament to the effectiveness of catalytic converters and to modern fuel-injection systems."

<comment><USER3> Then electric vehicles are not nearly as clean as the public thinks they are: every two Teslas or electric cars on the road produce more small-particle pollution from the action of their brakes and tyres than the total small- particle pollution of one internal combustion vehicle (engine, brakes, and tyres).

<comment><USER4> Regenerative braking largely minimizes conventional braking on Teslas.</comment></comment></comment>


Many More Students, Especially the Affluent, Get Extra Time to Take the Sat - <AUTHOR> https://www.wsj.com/articles/many-more-students-especially-the-affluent-get-extra-time-to-take-the-sat-11558450347 <comment><USER2> I imagine we'll see a lot of outrage on this, especially from the affluent students who didn't know they could do this. I mean, we all want and believe the SAT and college admissions to be a meritocracy. Given their extra influence with the WSJ and other reporters, I await the clarion call against this sort of hidden special treatment.</comment>


Execute ruby code sometimes (little helpers to encourage variety) - <AUTHOR> https://github.com/sudara/sometimes

<comment><AUTHOR> So, the code is like 15 lines and tossed together (currently using both Kernel.rand and Random, which is silly) — but I'd love ideas on how to make it better, how else to encourage unpredictable or more "human" behavior, other libs, etc!

<comment><USER2> When I think about creating lifelike responses, I tend to think of action potentials. Have a counter which tends to decay toward zero over time. When you attempt to do something, nudge the counter upwards. When the counter exceeds some threshold, do some behavior and the clear the counter. Note that this kind of mechanism is inherently stateful.

That said, I think that incorporating randomness or hidden variables into a user interface is rather misguided. Making a system harder to reason about takes control away from the user- it's basically an even more severe version of the problems with "Do What I Mean" in general.

<comment><AUTHOR> "Lifelike responses" — nice.

I like that "action potential" idea – I was trying to think of a good implementation for "do something twice a month per user" — decaying counter is a nice idea.

I'm with you on willy nilly making parts of your UI random — my use case is for changing up the text in greetings, general play with copy, and once in a while showing something like a tip or a "welcome back" message. Basically, small touches that convey a small sense of variety (vs. RANDOMLY DONT SHOW THE NAV!)

<comment><USER3> For printing varied text strings, what I've done is allow entries in the string table to have multiple text strings rather than just one. So if the code asks for the string GREETING, for example, rather than the string table code getting this one and only text for GREETING ("hello", say), it randomly picks one from the set (you might have "hello", "hi", "good day", perhaps).

Then whoever looks after the wording can just add as many strings as they like, for any messages they think could do with some variety. No forward planning required, because the code to do this is centralized, so it works for any string.

</comment></comment></comment></comment><comment><USER4> It seems like this would be a particularly handy syntax for random behavior in game programming. I usually use `if random() < .15` as an idiom for "do 15% of the time", but this is way more readable.

</comment><comment><USER5> > sometimes do

> rarely do

Are terrible for maintainability. Imagine that you are reading through the code of a programmer who used this library - What is 'sometimes'? What is 'rarely'? It would need to be documented on each usage to save half an hour of digging and cursing for the poor sap who encounters it.

> 1.percent_of_the_time do

For the same reasons, this would be better named "times_out_of_one_hundred" since The Time usually means a time of some sort being somewhere (i.e. the 21:43:21 type of time).

At least you foresaw some peoples' reactions to this:

[https://github.com/sudara/sometimes/blob/master/test/helper....](https://github.com/sudara/sometimes/blob/master/test/helper.rb)

<comment><AUTHOR> Agreed with all of that! Especially the poor sap who is reading the code wondering WTF...

So — my thinking for those two methods is to purposefully encourage being imprecise. We are always so obsessed with being exact in programming. And typically for good reasons. But in some cases, perhaps it doesn't matter if it's 50% of the time or 20% or 10% of the time. Just sometimes, not all of the time.

That being said, you bring up a fantastic point: what the hell does 'sometimes' mean? Half the time? What does rarely mean? It's certainly going to depend on the individual. No answers here, except I'm leaning towards redefining "sometimes" to mean between 15-50% of the time.

</comment></comment><comment> why-el I do something similar, but only for historic reasons. Back when I started playing with unix (3 years ago), I was learning cron jobs and I had one output "yo" to me everyday at 651 PM.

My system Yo's me ever since.</comment>


Scientists make precise edits to mitochondrial DNA for first time - <AUTHOR> https://www.nature.com/articles/d41586-020-02054-5 <comment><USER2> I used to be a mitochondrial engineer. This advance is fantastic, and not surprising. In 2006[0] they showed that you could get zinc fingers (similar to TALENs, which is what they use in paper) to site-specifically modify things in mitochondria. For reference, that is about 7 years before CRISPR was discovered.

Base editors were more recently discovered, so it was only a matter of time before they figured out how to do it in mitochondria.

I will be surprised if they figure out how to genetically transform mitochondria robustly (in humans, etc). That research has been going on for _decades_ , and still hasn't been figured out. One day, it will be, and I'm looking forward to learning about how they do it. They figured out transformation of yeast mitochondria in the 80s, still haven't figured out human mitochondria.

I think it's going to do something with either RNA import + reverse transcription OR conjugation[1]. I tried RNA import in yeast, and it doesn't really work, but I think conjugation has real potential, especially now that they got endosymbiosis of E.coli working[2].

[0] [https://www.pnas.org/content/103/52/19689](https://www.pnas.org/content/103/52/19689) [1] [https://www.ncbi.nlm.nih.gov/pmc/articles/PMC554353/](https://www.ncbi.nlm.nih.gov/pmc/articles/PMC554353/) [2] [https://doi.org/10.1073/pnas.1813143115](https://doi.org/10.1073/pnas.1813143115)

<comment><USER3> Do you think this is the start of the land rush for gene manipulation therapies?

<comment><USER2> Yep, pretty much. It's a very interesting time - genetic therapies have extremely low marginal cost, but very high capital cost. Unlike software systems, they can mean life or death. Piracy of genetic therapies will be really interesting.

Someday we might not just have antivaxers, but "rogue vaxers" who develop vaccines to diseases that pharma ignore and DIY test themselves.

<comment><USER4> We have this today to an extent, here's someone who tested a DIY gene editing cure for lactose intolerance on themselves [https://youtu.be/aoczYXJeMY4](https://youtu.be/aoczYXJeMY4)

(Spoiler: it worked, very well in fact!)

<comment><USER2> Im a bit suspicious of the lactose experiment, mainly because there wasn't hard data to back it up. Back then there was a spurt . AFAIK there are two people who have DIY gene engineered themselves and have actually gotten data to back it up, but only 1 who is public about it, and it wasn't a cool experiment (just showed RNA transcription) so it isn't even easy to find.

Josiah Zayner pretty much knows everyone who has tried DIY gene injection and over the last year or so there has actually been a decrease in people trying it (bit stale from 2019, but here is his presentation at BioHTP [https://youtu.be/1QOFDpYnEgY?t=4904](https://youtu.be/1QOFDpYnEgY?t=4904))

</comment></comment></comment></comment></comment><comment><USER5> There's a host of rare diseases that originate from mtDNA mutations that this could have applications in. I know the tech/Silicon Valley crowd tends to love anti-aging stuff as well, so for all y'all into life extension stuff, this should interest you as well because of mitochondria's hypothesized role in aging[0].

[0] [https://www.ncbi.nlm.nih.gov/pmc/articles/PMC4779179/](https://www.ncbi.nlm.nih.gov/pmc/articles/PMC4779179/)

<comment><USER6> I have been taking a high grade CoQ10 supplement.

CoQ10 is the primary antioxidant the human cell provides to protect and support mitochondria. It helps generate ATP within the mitochondria, the main energy driver we have.

CoQ10 is ubiquitous and produce within the body, however after the age of 20 levels start to drop, so it makes sense to consider supplements to top levels up if you're north of 30.

I love the stuff myself. I went from a tired feeling 45 year old with brain fog, to having a lot more energy and a mind keen to engage all day with whatever I have going on at work

[https://examine.com/supplements/coenzyme-q10/#effect- matrix](https://examine.com/supplements/coenzyme-q10/#effect-matrix)

<comment><USER7> How did you disambiguate these claimed CoQ10 effects from the results of taping your mouth shut at night?

"Not only did it fix my apnoea [sic] and huge lack of energy during the day"

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

<comment><USER8> "apnoea" is the British spelling.

<comment><USER7> TIL, thanks, I didn't know that.

</comment></comment></comment></comment></comment><comment><USER9> I suffer from a genetic disease in my mitochondrial DNA (single, large-scale deletion), so this is great news for me.

I have been closely following mitochondrial research since I was diagnosed 12 years ago, and the progression in our knowledge about mitochondria have been exponential. Truly impressive.

My sincere appreciation for all researchers out there (even though I do not expect an actual cure in the foreseeable future; say, next 15 years)

<comment><USER10> How does the disease impact your life, if I may ask?

<comment><USER9> Mitochondrial disease is not a disease per se, but I broad category of all kinds of both nuclear and mitochondrial mutations. Some of them are fatal and kids die within days or years after birth and some are more like chronic conditions with a varying degrees of severity.

In my case, my genotype is a single, large-scale mtDNA deletion. It is heteroplasmic, meaning that some of my mitochondria are normal and some are mutant. In these type of mutations, heteroplasmy percentage drives disease severity.

Disease is also progressive. Mutant mitochondria have a replication advantage, so that the percentage of mutant mitochondria goes up as you age.

My phenotype is called CPEO (Chronic Progressive External Ophthalmoplegia), probably the most common and benign disease presentation. I have ptosis (droopy eyelids) and diplopia (double vision). Both corrected by surgery.

I have also some systemic symptoms, mostly a profound "fatigue" that hits me 2-3 days per month. I quote fatigue because it is a unique feeling not like normal fatigue. Malaise could be also a good definition.

I am lucky. I have a normal life with minor issues. A good diet and exercise made a huge difference. I also take some over the counter supplements that also help my body to cope with all the mutant mitochondria.

</comment></comment></comment><comment><USER11> I wonder how you'd distribute these, therapeutically. Our bodies have mechanisms to let healthier mitochondria out compete less healthy mitochondria within a cell - the oxidative stress mitochondria are under basically requires that for us to stay healthy - but how do you get the mitochondria into your cells. Especially long lived cells like skeletal muscles much less neurons?

<comment><USER12> This sounds very complicated. Maybe the future of medicine is in _simplifying_ the human biology and possibly even "upgrading" it to something that is less susceptible to illness and injury.

<comment><USER13> Interesting idea. I wonder if instead of requiring oxygen to hand off electrons to during respiration we could substitute a simpler system by dumping the excess charge via a wire? Anyone with domain expertise care to comment on whether this is possible?

<comment><USER14> Electroactive bacteria?

</comment></comment></comment></comment><comment><USER15> Paper mirror: [https://www.gwern.net/docs/genetics/editing/2020-mok.pdf](https://www.gwern.net/docs/genetics/editing/2020-mok.pdf)

</comment><comment><USER16> Could someone create a respiratory virus that spreads throughout the earth's population gene editing everyone into perfection?

<comment><USER17> What could possibly go wrong?

<comment><USER18> Or right

</comment></comment></comment><comment><USER19> How long until we can write DNA as easily as we do Python?

</comment><comment><USER20> Reminds me of xkcd's "hottest editors"[0].

In all seriousness, if I'm reading this correctly, Ddd9 would resolve the challenge of using CRISPR-Cas9 to edit mitochondrial genomes. Could this be used for treatments of mitochondrial diseases in the future? Additionally, mitochondrial DNA is passed through the mother, so modification could potentially have a long lasting effect.

[0] [https://xkcd.com/1823/](https://xkcd.com/1823/)

<comment><USER21> I think an electron app will beat both Vim and Emacs to it.

<comment><USER22> I would even happily suffer through Electron in this rare case</comment></comment></comment>


Ask HN: Is it a good idea to study assembler nowadays? - <AUTHOR> <comment><USER2> How does one "study assembler"? I know several (dozen) machine languages by hearth (3E02 == MVI A,2). And I wish I dont, because it is useless knowledge. Maybe worth studying is some advanced macro assembler, but I doubt it. You could learn to use unix m4 for the same effect.

<comment><AUTHOR> Thank you timonoko. Indeed, I was referring to study some macro assembler...</comment></comment>


60 years ago: The famous Boeing 707 prototype barrel roll over Lake Washington - <AUTHOR> http://www.seattletimes.com/seattle-news/60-years-ago-the-famous-boeing-707-barrel-roll-over-lake-washington/ <comment><USER2> Interestingly enough, if the occupants weren't looking outside, a "1G roll" would feel almost the same as level flight; here's a video showing how "gravity" seems to invert along with the plane:

[https://www.youtube.com/watch?v=pMWxuKcD6vE](https://www.youtube.com/watch?v=pMWxuKcD6vE)

This is also why pilots can become spatially disoriented:

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

<comment><USER3> Problem is, it isn't actually a 1G manoeuvre. You can only have a constant 1G if you are in straight and level flight. If you perform a gentle turn, you will have very slightly more than 1G as you bank around the turn.

With roll, if you pull positive 1G while inverted, the plane will effectively be accelerating towards the ground twice as much as if it was in free fall. When the roll is over, in order to regain straight and level flight, more than 1G must be pulled to counteract the groundwards velocity that has been accumulated.

<comment><USER4> A descending turn can be done with <1G - it's only a level turn will pull more than 1G.

<comment><USER3> Yes, you can do a descending turn, with <= 1G. However, you will then come out of it going down, and unless you want to fly into the cumulogranite you will need to pull > 1G in order to level out again.

<comment><USER5> If you really want to be pedantic, going east in level flight you are at less than 1G due to orbital momentum and in vary small part due to altitude. So, in theory you could do all of this and stay under 1G.

PS: The weight thing can be significant for hypersonic+ aircraft. Also, you use slightly less fuel going east than west due to earth's rotation, though winds are going to be far more important.

</comment></comment></comment></comment></comment><comment><USER6> _What were you doing Tex?

I was selling airplanes._

[https://www.youtube.com/watch?v=Ra_khhzuFlE](https://www.youtube.com/watch?v=Ra_khhzuFlE)

Here's Boeing, doing a 'near vertical' takeoff in the Dreamliner (spoilers: not really but still impressive), also presumably selling airplanes.

[https://www.youtube.com/watch?v=KYbM-3E11Qo](https://www.youtube.com/watch?v=KYbM-3E11Qo)

<comment><USER7> I was at the Farnborough airshow in 1998. Farnborough is one of the largest commercial/trade airshows in the world. Wikipedia says that $72bn worth of aircraft were bought at the last show.

The commercial jets are really thrown around at the show. Steep take offs and really tight banked turns low to the ground so that the aircraft can remain visible to the people at the airshow.

[https://www.youtube.com/watch?v=T3EgoPDBvLc](https://www.youtube.com/watch?v=T3EgoPDBvLc)

The planes are more than capable of these manoeuvres, but paying passengers don't want to imagine themselves riding in those planes. Passengers want slow, steady and graceful flights that wont spill their drinks or upset their stomachs.

</comment></comment><comment><USER8> I use this example whenever I'm presenting on the difference between 'Radical' (High Risk, High Return) and 'Strategic' (Low Risk, High Return) plans. The difference between the two is Capability - ie, having strategic capability lowers risk.

This barrel roll, while not a strenuous manoeuvre on the 707, nevertheless demonstrates confidence in Boeing's manufacturing capability and by executing it Tex Johnstone convinced plane buyers that purchasing a jet was not a high risk strategy. "Selling planes" indeed!

<comment><USER9> It's not really a "low risk" maneuver to do an aerobatic maneuver on an aircraft that isn't certified for it and that doesn't have a g-meter. Ask the crew of the Lufthansa B720 that crashed trying to do a roll in 1964.

[http://aviation- safety.net/database/record.php?id=19640715-0](http://aviation- safety.net/database/record.php?id=19640715-0)

</comment></comment><comment><USER10> When you hire a pilot with the nickname 'Tex', expect showmanship.

</comment><comment><USER11> That aircraft is more properly called the 367-80, or "Dash 80". While it did serve as the prototype of the 707, its fuselage isn't as wide.

The KC-135 tanker and its derivatives also derive directly from the Dash 80, rather than the 707. It retains the 80's more narrow fuselage.

<comment><USER12> And the article says thus: _It had become Johnston's job to travel all over the U.S. to show off the Dash 80, as the 707 was code-named._

<comment><USER11> It does, it's just kind of wrong. Things are more interesting than that.

Dash 80 was a nickname for _that particular plane_ , it's model number is 367-80. The 707 is a slightly different aircraft that generally isn't referred to as a "Dash 80".

The Dash 80 _was_ the prototype for the 707, but strictly speaking, it's model number isn't 707.

</comment></comment></comment><comment><USER13> It's also claimed, though there's no footage in existence, that a barrel roll has been performed in a Concorde.

[https://www.youtube.com/watch?v=KYQS3qAIjAo](https://www.youtube.com/watch?v=KYQS3qAIjAo)

<comment><USER14> It has to be true. I saw it in a cheezy B movie, surely it wasn't special effects?

Or maybe it was just a roll, not a barrel roll. I can't remember, it's been 35+ years and I don't want to see the movie again. Anyway, we were expected to believe that the Concorde is maneuverable enough to evade both a SAM and missiles from a fighter. My "suspension of disbelief" unfortunately didn't kick in. [https://en.wikipedia.org/wiki/The_Concorde_..._Airport_%2779](https://en.wikipedia.org/wiki/The_Concorde_..._Airport_%2779)

Hmmm ... reading the Wiki entry makes me think about wanting to see that movie again. So many bad disaster films were made in the '70s.

<comment><USER15> If you watch the video Sosuke posted, the Concorde seems surprisingly maneuverable. Probably since it has a short span so it can roll quickly and a large amount of thrust.

Actually, the movie used models, you can see the loop scene here: [https://www.youtube.com/watch?v=Ny_JslCCPxk&feature=youtu.be...](https://www.youtube.com/watch?v=Ny_JslCCPxk&feature=youtu.be&t=46m40s)

</comment></comment></comment><comment><USER16> Technically called an aileron roll.

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

<comment><USER17> No, a barrel roll is different to an aileron roll. The wikipedia article linked to shows the difference.

A barrel roll requires heading and altitude changes, an aileron roll should not.

<comment><USER9> Yes, the are different. However what the OP is pointing out is that Tex actually did an aileron roll and not a barrel roll. (Watch the video and it's pretty obvious).

<comment><USER18> I watched the video and it looks like a barrel roll to me. The airplane doesn't maintain altitude nor heading. Also that engineer who took a photo while kneeling next to a window would have been on the ceiling at that point if it had been an aileron roll.

<comment><USER9> If you look at 1:56 on the AviationExplorer video you'll see there is little or no pitch change, so it couldn't be a barrel roll. I'm not sure how you can tell that it's heading is changing from that video.

According to wikipedia "An aircraft performing an aileron roll will actually fly along a slightly helical path, and a very light, positive g force will be maintained" so the photographer wouldn't have been on the ceiling.

<comment><USER18> I don't know which AviationExplorer video you're referring to, but there's supposedly only one video of the maneuver so I assume the one in the article is the same thing.

I see quite a large pitch change there. The aircraft starts more or less level, then pulls up. While inverted it begins to move substantially nose down. As for heading, at the beginning of the video it's pointed well to the left, and at the end of the maneuver the fuselage is lined up with the camera.

Wikipedia is confused or imprecise. Either that "positive g force" refers to the force on the aircraft relative to the Earth, or it's just wrong. Reading through the original reference that statement comes from, I believe it's the former. The book says:

"...we have managed to substantially increase the angle of attack, to a point where the inverted wing is capable of maintaining altitude."

If you're maintaining altitude while inverted, you're not pulling positive gees relative to the airplane, but you _are_ pulling positive gees relative to the Earth.

You can browse most of the chapter on aileron rolls in the book in question on Amazon:

[http://www.amazon.com/Basic-Aerobatics-Geza- Szurovy/dp/00706...](http://www.amazon.com/Basic-Aerobatics-Geza- Szurovy/dp/0070629269)

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

See around 1:56. No significant heading or pitch changes that I can see, although it is difficult to tell because the camera is so far away.

</comment></comment></comment></comment></comment></comment></comment><comment><USER19> I'm stunned that Bill Allen left behind the photo he was presented with at the banquet. While he may have not liked it at the time it seems like he never forgave or recovered from it.

</comment><comment><USER20> Is there anything about the Boeing 707 structurally that makes it possible to do a barrel roll that would not be possible in later generation jets, such as the 757, 767, 777 and 787?

<comment><USER3> No. A barrel roll doesn't place much in the way of demands on an airplane's structure.

<comment><USER21> Non-aerobatic airframes are not designed to pull high negative G's. The other problem with negative G's is the junk that accumulates in the bottom of the airplane can fall upwards and cause problems.

This is why Tex was careful not to pull negative G's.

</comment></comment></comment><comment><USER22> How quickly would the 707 drop in altitude while doing a barrel roll? And did he need a minimum speed to be able to successfully do it (sort of like an escape velocity)?

<comment><USER23> If it is truly a 1G maneuver, then the answer would be:

        9.8 m/s^2  *  (1-cos(\theta))

Where \theta is the angle off of level flight. So when you are fully inverted, the plane would be accelerating at 2 G's downward (one to feel like you were in free-fall inside the cabin, and then one more to push you back into your seat).

In the film, the roll takes about 12 seconds. A quick numerical integration shows that by the end of the turn you would be 700m lower than you started, and have a downward velocity of 120m/s. I'm not a pilot, but I'm sure that the best practice here would be to start with an upward velocity, and not to really keep 1G throughout the turn. Those could both lessen your loss of altitude.

</comment></comment><comment><USER21> That picture is one of the two most famous aviation pictures. The other one, of course, is the 1903 first flight.

</comment><comment><USER24> Perhaps inspired by Falk's performance in an Avro Vulcan prototype at the '55 Farnborough, which I think was in July.

[https://www.youtube.com/watch?v=afj19PedlxE](https://www.youtube.com/watch?v=afj19PedlxE)

</comment><comment><USER25> Does the size of the plane make executing a roll of this nature challenging?

<comment><USER26> I wouldn't believe so - as Tex explained:

"The airplane does not recognize attitude, providing a maneuver is conducted at one G. It knows only positive and negative imposed loads and variations in thrust and drag. The barrel roll is a one G maneuver and quite impressive, but the airplane never knows it's inverted."

As long as you have enough thrust and the plane can withstand the G force, it will roll.

</comment></comment><comment><USER27> Is it unreasonable to expect the ability to barrel-roll from any motorised plane (i.e. not a glider)?

<comment><USER28> Any airplane should have no problem--but legally, not allowed unless it is certified for it.

<comment> bmir-alum-007 Any U.S. pilot caught pulling such maneuvers would be pwned by the FAA. Any Boeing-employed pilot would be summarily fired as well.

<comment><USER29> Boeing sometimes puts some extreme maneuvers into the approved flight test card, which is performed with FAA approval.

There has been several cases of 737s being rolled (accidentally) without damaging the airframe.

When test pilots fly extreme maneuvers on an approved test profile, its usually done at high altitude, not airshow flyover altitude.

Before the famous 787 demo flight, the pilot flew the maneuvers in a simulator, and did some practice at higher altitude before doing a low altitude demo routine.

<comment> bmir-alum-007 At Boeing, there's a fine line between selling jets and getting fired. The last order to Randall Lee Neville from CEO Conners was "no rolls."

</comment></comment></comment></comment></comment><comment><USER30> I have a feeling that in today's corporate culture he would be probably fired.

<comment><USER31> According to the article, he was very nearly fired in 1950s corporate culture.

Regardless of intent or results, pulling an unsanctioned literal stunt with hardware that represents the majority of your company's assets is going to be frowned upon.

<comment><USER32> some sources say he was fired and then un-fired later in the day, when new aircraft orders started pouring in.</comment></comment></comment>


Should we let housing prices fall?   - <AUTHOR> http://www.marginalrevolution.com/marginalrevolution/2010/09/should-we-let-housing-prices-fall.html

<comment><USER2> It is kinda amazing to me that this is up for debate. I think the reason is that so much policy presumes that government can just make a choice and pick whichever is best for the economy.

Notice in this article, and almost every other article, no mention is made of what will happen if government steps in.

Government stepping in _always_ does damage to the economy because every action government takes has some cost, and that money comes out of the economy.

Worse the money government spends comes out of the profits of companies and indivdiuals, or via inflation which increases costs and reduces these very same profits.

So the money comes from the most critical point in the job creation process- right when consumers would be deciding to buy more with extra money, or businesses would be hiring people and expanding.

Meanwhile, the use of that money is less efficient. Propping up housing prices isn't really going to fool everyone, it will just delay that point in time where people believe the errors of the past (government errors, FWIW) have been worked out and they start to trust the economy again.

People seem to treat "government" as a magical money tree whose decisions have no consequences. This is not the case. All government actions do damage to the economy, and thus government should be limited to only those essential functions.

Trying to manage the economy is not one of those essential functions, because government can never be good at it (because government priorities are always going to be for a short term rosy economy for elections, not for a long term growing healthy economy.)</comment>