Facebook Vulnerability: Like Clickjacking - <AUTHOR> http://erickerr.com/like-clickjacking

<comment><USER2> This is Matt Jones, an engineer on the site integrity team at Facebook. We're the ones who address issues like this one on Facebook.

Ultimately clickjacking / UI redress is a browser vulnerability - it shouldn't be possible to display one thing and have another receive user interactions. As some people have pointed out, Firefox's NoScript plugin does a pretty good job of preventing it. But that isn't to say victim web sites shouldn't do anything about it.

In the case of Like buttons, they inherently run in an iframe so our protection on the rest of facebook.com ([http://theharmonyguy.com/2010/03/13/facebook-adds-code- for-c...](http://theharmonyguy.com/2010/03/13/facebook-adds-code-for- clickjacking-prevention/)) can't apply. However, Facebook knows the urls these buttons point to and generally knows or can infer the urls where they are embedded. When we detect a likejacking site on one of these urls, we block its url or domain from being liked and prevent future clicks on facebook.com from going to it.

<comment><USER3> Hi Matt. First off, thank you for coming forth to make a statement about this vulnerability. It's nice to see that fb is responding to these incidents, and since you care, I'll work with you to solve the problem.

But first, let me express how disconcerting I find it for facebook to "pass the buck" on the blame of this vulnerability. It's not a browser vulnerability to have personal information be shared by implementing a "1 click publishing" button via a cross-domain iframe that (often times unknowingly) has a user logged into another site -- it's a privacy vulnerability that you need to take care of. As of late, I see no way that I can disable "liking" stuff, and I'm aware of the vulnerability, so I stay logged out of Facebook as often as I can.

It's facebook's decision to use an iframe, to publish content to user's news streams in 1 click, and to allow any website to implement the like button. It's your decision in spite of knowing that the means of doing so are open to "vulnerabilities" such as linkjacking. I put "vulnerability" in quotes because it's not really a vulnerability, now is it? It's a fundamental possibility based on how HTML works -- links can be invisible! Calling "linkjacking" a vulnerability is like calling tracking pixels, sessions in URLs, or anything that can be used for ill purposes, a "vulnerability" that browsers need to take care of. I'm not buying it. It's part of the design of HTML and you need to work with it.

You could easily remedy the situation by ensuring the user really means to publish something. However, I realize you aren't going to change anything about the "liking" process because it will disincentivize publishers from including it if it's not as effective. Business first, I understand.

Luckily, I will share with you, for free, how to fix this issue.

You can detect whether or not an iframe is being invisibly dragged by polling the cursorX and cursorY (which are relative to the browser window itself, not just the iframe) in conjunction with whether or not the user's mouse is over the "like" button (simple onmouseover/onmouseout).

If the user's mouse is over the "like" button even as X and Y dramatically change (optionally, over some unit of time) then the iframe is being positioned according to the mouse movements. A click on the "like" button should be disabled, and you should discretely notify your server that the URL/domain is suspect.

If the attackers were smarter, they'd position the "like" button below the mouse only on an onmousedown event so that your detection script wouldn't catch on to the one sudden movement of the "like" button in time for when the user lifts the button of their mouse.

But, luckily, you'd have me to tell you to ensure that both onmousedown and onmouseup are fired before actually having the "like" button signal a click.

So, there you have it. A free solution to your problem. That worked out much easier than posting a puzzle on your jobs page and waiting for people to solve your problems that way.

PS: For some reason as I read my post I realize that I come off as quite arrogant and perhaps a bit angsty. I apologize for that... it's almost embarrassing. I think it's just really late and I felt like being really frank about the issue. At any rate, you guys should hire me.

<comment><USER2> The idea of detecting if X and Y are changing while the cursor is over the button is a good one and actually something we thought about. While it does help mitigate the case where the attacking site dynamically moves the iframe, it's relatively easy to position the like button statically and just trick the user into clicking on its particular location, which would bypass this strategy (albeit at the cost of a slightly lower clickthrough rate). So I don't think this is a robust enough fix.

I think it's reasonable to say that clickjacking / UI redressing attacks are a browser bug - it's addressed in Google's browser security handbook: [http://code.google.com/p/browsersec/wiki/Part2#Arbitrary_pag...](http://code.google.com/p/browsersec/wiki/Part2#Arbitrary_page_mashups_%28UI_redressing%29). But regardless - we as a victim site are mitigating the problem.

Do you think there's a better way to offer the one-click liking experience without an iframe?

<comment><USER3> Fair point about the statically placed and baited frames. Well, detecting X and Y would solve the movable case of this, so that's better than nothing.

After reading that handbook link, I'd agree that it is very reasonable to consider it a browser bug. I suppose I considered it more of an oversight in terms of iframe specifications, and now am more sympathetic to your situation.

I'm not sure there's a better way to offer a one-click liking experience. If I'm not mistaken, you have two options: more than 1 click, or be vulnerable to these attacks.

Personally, I'd use the feature more if it behaved the same way that pasting a URL into my status does. In this case, it would be 1 click to open some sort of floating dialog (or a small window like in fbConnect), and another click to change the title, add a description, or just click "ok".

... pause for 10 minutes ...

Perhaps this might be a solution. An embedded javascript (sourced to your server) returns a code with a unique key for that user/URL combination (along with whether or not they have already pressed it), stored in javascript in a private data structure (an anonymous function, for example). You then embed whatever HTML you need to display your button onto that page, along with code to ensure it is being intentionally clicked. On click, you load another js file, where the unique key is passed via the get parameter. Your server will process the like, and this file will return the javascript to set the button as depressed, or to request the user login, or whatever.

The reason that the key is stored in an anonymous function is so the host URL cannot retrieve this bit. Otherwise, they could simply call the second js file to automate the user "liking" their page. The calls to your js file, however, still allow you to get the user's session data. And, of course, you can execute JS on the host's end to ensure that the click is legitimate..

Is this flawed? What do you think?

Edit: I just realized that "legitimate click detection" would be very involved. But, still possible.

<comment><USER2> I think that in the current state we have pretty robust protection against these attacks. If we see people bypassing it, we'll have to change our tactics :-).

Both of your suggestions are good, but require us being able to run javascript on the embedding (parent) page. (To have a floating dialog, we need more than a small iframe, and both this and a full pop-out go against the 1-click nature of things.)

While we could do the sort of elementAtXY trickery you suggest in the case of sites running our javascript, it's also possible to use the like widget just as an iframe, which breaks anything that requires that the parent site is running our js.

Even assuming we have parent-page js running, we'd also have to avoid anything that requires a (high-latency) roundtrip to fb servers just to verify if a click can happen, as this makes for a very bad user experience for those on slower connections. I think that could be avoided by generating and sending the user-url key to the fb javascript in the parent page as you describe, and communicating that to the like button iframe when it's being clicked (after determining that it's not hidden) by setting it in a fragment on the iframe, having the iframe grab it from that fragment, and pass it along for verification on the server. Though I don't know how the parent frame would be able to know when a click was happening in the iframe, since only the iframe contents would receive the onclick, not anything the parent page's dom... Regardless, it's a moot point because the bare iframe can't be protected this way.

<comment><USER3> You're probably right. It's easiest just to investigate any alarmingly high impressions:liking ratio and see if something phishy is happening.

Then again... the fact that I could unwillingly goatse all of my contacts (even if you prevent it from happening to too many people afterwards) makes me not want to stay signed in, at least until I can opt out of "liking" things.

It's late and I'm going to sleep... I'll reply in full tomorrow. Specifically, I think requiring javascript might not be that much of a detriment, especially if it alleviates any possibility and concern of fb getting embarrassed by a surge of clickjacking attacks.

As per the user experience concerns... the js solution wouldn't result in any worse UX for slow users than the iframe currently does. Either way, it's 1 round trip request needed to display the button, and 1 round trip request to ensure the button click goes through. In your case it's a round trip to load the iframe, a round trip once it's clicked. In my case, 1 round trip to get the JS, which displays the button, and 1 round trip to send the click event (the changing of the button can be client side and appear instant).

The main concern with a non-iframe solution is that the host page can really try to screw with your button.. you'd need to make it an image and ensure it's being displayed correctly (correct size, correct src, etc). But, again, I think it's entirely possible with not-too-much code.

Alright, I'm going to sleep for real.

</comment></comment></comment></comment></comment></comment><comment><USER4> [http://vinhboy.com/blog/2010/05/31/facebook-man-with-the- big...](http://vinhboy.com/blog/2010/05/31/facebook-man-with-the-biggest- trick/) I also wrote about this like 2 months ago, and they still haven't done anything about it...

=(. Facebook CTO guy, are you around today?

<comment><USER5> I'm not sure if this is even possible to fix, given the same-origin policy on iframes. Facebook can't tell where the iframe is placed on the page, and I don't think they can tell if it's 'position:absolute'd. It's a tough problem.

<comment><USER4> Without testing, I suggest maybe making the iframe do an "alert" -- "Are you sure you want to Like this page?"

One more step, a lot more security.

Or at the very least make it easier to find things that you have liked ( I am speaking without actually going to look if its easy to find it... I just remember it was very hard to find the last time I tried )

<comment><USER5> Alert boxes tend to be horrible in terms of usability, but it is the only way to actually require a second step, since anything else you do will be constrained to the iframe and you can just clickjack a second time.

I think the solution they'll end up implementing (if they do anything) is an "I didn't Like this" link that users can click to report false clicks. If a company gets more than x% of those they get taken down. It's not a legit solution but should be fairly effective.

<comment><USER6> They can change the like to a 'pending like' and confirm it next time you check facebook.

<comment><USER7> And for "trusted" fan pages they could automatically bypass that.

</comment></comment></comment></comment></comment></comment><comment> bsnss-mn-cdr Items like this will always be a never ending battle. Each time one side has to update their technology to stop something from the other they normally must gain more authority from the other. In the case of Facebook that will be asking for more rights into each website that wants to use the 'Like' button and with the recent privacy issues this will just kick the hornets nest all over again.

<comment><USER8> I see it as a battle between "the browser is a reliable tool for reading and navigating documents on the web" and "the browser is just another UI toolkit for trusted desktop applications". It can't be both, because any seamless UI will always be powerful enough for untrustworthy code to find other malicious tricks like this.

</comment></comment><comment><USER9> Unfortunately, the twitter clickjacking attack still isn't fixed. See <http://seclab.stanford.edu/websec/framebusting/index.php> for an overview of how that type of defense still can be defeated.

</comment><comment><USER10> Its especially bad because of the way profile pages are organized. When you're viewing your own profile wall posts and status updates float to the top, while Likes, new friends, and other such ambient updates are further down. However, other people see the Like front and center on their News Feed.

I noticed this after several friends were liking "10 WORST construction mistakes", or similar. I asked several about it, and none of them had any idea it had happened.

</comment><comment><USER11> Anything in an iframe or under an iframe is susceptible to clickjacking. Firefox + NoScript does a pretty good job of preventing this.</comment>


Ask HN: How did you pass hard college classes? - <AUTHOR> I'm currently on my 3rd attempt at college, 10th semester overall. (I studied Computer Science and Teaching in university, dropped out of both after six and two semesters respectively, and am now doing Applied Computer Science at a technical college.) You'd think by now I'd know how to deal with difficult classes, but I'm absolutely stumped. Previously I was able to just drop out of classes and try again the next year, but at my current college there's a strict schedule and you have to pass all your classes the same year.
I failed three final exams and have to repeat them at the end of next month. The drive and motivation is there, I have no problem sitting down and putting in the work. But it feels like (especially with maths) I'm just treading water. I'll sit down, try to do a problem, but not even know how to approach it. So I'll look up the sample solution just so I know where to start - and sometimes that still doesn't help, I might understand how those steps get you to the correct result, but I have no idea how you're supposed to think them up if you don't even know the solution already. It's so frustrating trying over and over again and still not getting the material. And even more so when I see all my classmates pass with ease and I'm still stuck on classes that I'm already taking for the 2nd or 3rd time.
It's giving me massive anxiety, even though I know I still have enough time to study, but whenever I try, it just feels hopeless. But I know there has to be a way since I already got so far and everyone else seems to be able to do it, too. So how did you get through difficult classes? <comment><USER2> #Try a different book

Oftentimes the assigned textbooks are subpar. Less Wrong has a good list of textbooks. Quora questions have also been helpful

#How much of your time studying is actually spent studying?

You may need to spend less time studying.

You might spend six hours at the library, but only one hour on the actual problem set, and five hours staring out the window. It's better to spend an hour and a half on focused work and have 4.5 hours of free time then waste that time pretending to study when you aren't actually being productive. If you can't focus, take a break. Figure out how much of your time you spend studying vs "studying." and shoot to improve that.</comment>


Twitter's Bootstrap hits 2.0 - <AUTHOR> https://dev.twitter.com/blog/say-hello-to-bootstrap-2

<comment><USER2> New features:

\- 12 Column grid

\- Responsive design (adjusts to different screen sizes, like Skeleton)

\- New forms, buttons, dropdowns

\- More opinionated! More Less preprocessing!

I'm fired up; this will be present on my dev branch tonight.</comment>


Better geometry through graph theory - <AUTHOR> https://ideolalia.com/2018/08/28/artifex.html <comment><AUTHOR> The trick reminds me of transverse intersection assumption from topology: [https://en.wikipedia.org/wiki/Transversality_(mathematics)#:...](https://en.wikipedia.org/wiki/Transversality_\(mathematics\)#:~:text=transversality%20is%20a,intersection).

The confusing part is the description of how the edges are added and removed to make a "consistent" graph. Graphs don't have a metric associated with the edges but he goes back and forth between the graph representation and referencing a metric structure between the nodes and either adding or removing the shortest path. It makes sense but it's not clear why. I couldn't think of obvious counter-examples to the claim but maybe someone else can. The graphs he draws don't make it obvious that the edges are "directed" (inside vs outside requires choosing a direction/orientation). But after deciding the direction of each edge why does removing the shortest one make sense for computing the correct set of nodes for the union of some given geometric elements?</comment>


Progressives Are Regulating Away Equality Benefits of Uber, Airbnb and Google - <AUTHOR> http://time.com/5364088/uber-google-equality-progressives/ <comment><USER2> Can anyone take this article seriously?

> "Progressives are singling out technology companies for new regulations. For > instance, in New York, the City Council has just voted to cap the number of > ridesharing vehicles for services like Uber and Lyft, and may require that > drivers earn a minimum amount"

Taxis have been limited in New York since forever. Uber is not being singled out in this regard.

</comment><comment><USER3> So pro-consumer regulations = harming business = increased inequality. Got it.

How anyone could argue that the benefits of the gig economy actually improves worker lives is beyond me. I tend agree that it's better for the consumer in terms of price and service, which I guess you could say reduces inequality because more consumers can afford access that used to be cost-prohibitive. But by and large, if more and more workers don't have a steady and liveable wage, health care, and retirement benefits, this leads to drastically increased inequality.

I tend to think that pointing fingers to anywhere but the tax code and resulting social services or UBI to reduce inequality is barking up the wrong tree.

<comment><USER4> >How anyone could argue that the benefits of the gig economy actually improves worker lives is beyond me.

Exactly, makes you wish the professor would give up his nice cushy job in the ivory tower, with no more fat salary, with no more health insurance...then take a loan from Uber to buy a car and try making a living wage.

</comment></comment><comment><USER5> The author certainly has a couple of valid points, especially that there is a certain amount of equality distribution and trust-breaking provided by the "gig economy".

However, what the author totally misses is that the regulation movements are not without merits, often due to blatant abuse and profiteering:

\- Uber gets flak because of surge pricing, whereas (at least in Germany) taxis are mandated to provide the same price to all customers, no matter source or destination, or the skin color or BAC of the passenger

\- AirBNB gets flak because instead of people renting out their spare rooms, a _lot_ of "hosts" abuse the system and run straight hotels in residential areas, with all the problems this incurs (noise, drunkards, sometimes illegal prostitution). In addition for many years AirBNB dodged the hotel and tourist taxes that hotels had to pay, thus depriving the cities of tax revenue.

\- Google, well, is Google - their customer service is non-existing unless you are handing them over dollars (which isn't even possible for many services).

\- Facebook/Twitter/Youtube... same problem and their "algorithms" were abused by hackers and right wing trolls to feed the population vile conspiracy theories and xenophobia.

Turns out that the state _does_ have to provide regulatory frameworks or the "free market" will simply screw over the weakest people in society.

</comment><comment><USER6> I was interested in what he had to say until I got to:

"California imposed costly and complex regulations on the voluntary exchange of data with such services as Facebook and Google."

Righttttt......

</comment><comment><USER7> Let's not forget Time was purchased by major right wing political influencers.

<comment><USER8> Thank you....

</comment></comment><comment><USER9> "Progressive" is marketing term backed by a shaky ideology that has been totally twisted to serve the powerful.

Eric Holder for example was hired for big money by Uber to push the narrative that background checks for Uber drivers is discriminatory against minorities, never mind that lack of background checks exposes women (especially women of color) to a lot of danger from sex offenders.

Another example is in my own city of Seattle, Comcast for years has been successfully advocating against broadband competitors and one of their "arguments" is that building out higher speed internet in high income areas will cause inequity that will affect minorities in poorer neighborhoods. By "progressive" logic this makes perfect sense but it's obvious that it's simply a powerful company blocking out competition.</comment>


Gender-Reversed Presidential Debate Reveals Trump's Allure to Clinton Voters - <AUTHOR> https://reason.com/blog/2017/03/08/gender-reversed-presidential-debate-reve <comment><USER2> > As you might already have guessed, the actual performances didn't turn out > that way. Instead of confirming the professors' assumptions, the > performances suggested different conclusions.

I really like when people test their ideas and aren't afraid about publishing the results, especially when it contradicts the original expectative.

This give us opportunity to refine our thoughts and models.</comment>


The Man Who Gets The Science Right On 'The Big Bang Theory' - <AUTHOR> http://www.npr.org/blogs/monkeysee/2013/09/23/224404260/the-man-who-gets-the-science-right-on-the-big-bang-theory <comment><USER2> As an aside, I was watching BBT just yesterday (on a long plane ride with limited entertainment options) and I was reminded how uncomfortably awkward it makes me feel. In short, the core problem is that the characters are not sympathetic -- you're meant to laugh _at_ them, not _with_ them, to say nothing of the show's terribly backwards gender roles.

This essay was quite popular a while back and summarizes all this and more, quite well I think: [http://butmyopinionisright.tumblr.com/post/31079561065/the-p...](http://butmyopinionisright.tumblr.com/post/31079561065/the- problem-with-the-big-bang-theory)

Edit: Interesting to see many of you have a completely opposite take on these characters. That's fine with me, as long as we don't have to watch BBT if I'm over at your place. :)

Edit 2: Can we at least agree that laugh tracks are awful, even on otherwise- phenomenal shows (Seinfeld)?

<comment><USER3> I don't know. In my personal opinion those critiques are overly critical.

My circle of friends is pretty much _exactly_ like the main characters in the show. Nerdy, 20-something PhD guys that play board games and watch sci-fi. A few were actually almost as bad as Raj in not being able to say a word when a woman was around.

And I love the show. Loved it as soon as it came out just because it reminded me so much of my friends. And I don't feel like the characters are meant to be laughed at.

So, just to say, there's more than one perspective on this.

<comment><USER4> I think the appeal of BBT is that some people like to see a reflection of their microcosm: they like to see people like them, situations like the ones they experience, references to things they like, etc.. It makes them feel relevant and part of an in-group.

It's the same appeal that xkcd has. It has been called "referential humor", but I don't think it should be classified as humor, although for some people it seems to be a completely satisfying humor surrogate. Indeed, BBT and xkcd are both full of nerd references, devoid of actual humor, and enormously popular.

<comment><USER5> >> It has been called "referential humor", but I don't think it should be classified as humor, although for some people it seems to be a completely satisfying humor surrogate.

You're just completely missing the point. The joke is not the nerdy references. The references are a backdrop, a framework in which to develop the show's humor.

Do people really think, even for a second, that CBS developed a primetime network show whose jokes were targeted specifically to Caltech physics PhD students? Or even to self-identified nerds?

Think of it another way. The show is produced by Chuck Lorrie, the same guy who produced Two and a Half Men, which featured Charlie Sheen as a Malibu playboy. Did you think Two And A Half Men was written to appeal primarily to Malibu playboys? Would you consider that referential humor? Do you think Malibu bachelors got their panties in a twist because some of the jokes poked fun at the show's main characters?

Some of the characters on the show are quirky and flawed, and sometimes they're the subject of ridicule. Flip the channel to another sitcom. It's the exact same thing, but about jocks, or suburban families, or blue-collared delivery truck drivers.

Only the nerd community has enough of an ingrained victim mentality to take it personally, to think the show should be about them, or that jokes about nerds should be off limits.

<comment><USER6> > _Do people really think, even for a second, that CBS developed a primetime > network show whose jokes were targeted specifically to Caltech physics PhD > students? Or even to self-identified nerds?_

Yes, and it named it The Big Band Theory.

I mean seriously, did you really think, ever for a second, that this wasn't at attempt to hit the target group of (not Caltech PhD students of course) the "geek/nerd crowd" \-- a group which nowadays is more populous than ever, and it's not "the kiss of death" to indentity with anymore?

It's delluded to think the setting is not part of the targetting strategy and merely serves as a backdrop for the humor. That's not how TV works. The BBT is targeted for this crowd as much as Twilight is for teenage girls.

<comment><USER5> Right. You're the center of the universe.

And "Gilligan's Island" was made for people stranded on desert islands.

"Taxi" targeted that coveted taxi driver demographic.

"That 70s Show" targeted time-travelling teenagers from the 1970s.

"Scrubs" was written for doctors. Remember how upset all the doctors were when Scrubs joked about doctor stereotypes? No?

Likewise "Frasier" was for effete psychiatrists, "Cheers" for bar flys, and "I Love Lucy" for Cuban bandleaders and their wives.

Or, it's just a comedy about some quirky, nerdy friends, written to appeal to a very broad audience.

<comment><USER6> > _Right. You 're the center of the universe_

No; but you are at the center of a strawman.

Didn't the fact that I already wrote that "Twilight is targeted at teenage girls" stop you from writing all those dreadful "counter-examples" (as if I believed that the fictual setting of a show automatically and necesarrily determines the target audience?)

If I followed the strawman logic you accuse me of having, I'd have said "Twilight is targeted at vampires and girls having affairs with them". I did not.

As for your rude question, no, I'm just at the center of a big enough and profitable demographic -- geeks, semi-geeks, etc that have come out of the woodwork ever since the mid-nineties/early oughts, and for which tons of media content is produced, from J. Abraham's and Josh Whedon's stuff, to the nth comic book movie and down to Kevin Smith's Comic Book Men TV series.

The "counter-examples" that you provide, are workplaces and professions, that have served as generic backdrops for drama for ages. They are not about a specific demographic, and their content and references are not targeted at them. On a medical drama, for example, the content is all about relationships, tension, love affairs, etc, not the practice of medicine. They characters might as well be lawyers and the show would still work, whereas in BBT the content is all about the geek references, and nothing is generic and universal.

You even seem unaware of the fact that shows can be targeted a specific demographic, like, say, Friends created for 20-somethings, or Sex and The City created for 30+ women.

<comment><USER5> > _Didn 't the fact that I already wrote that "Twilight is targeted at teenage > girls" stop you from writing all those dreadful "counter-examples"_

No, merely reference Twilight is not enough because in majority of cases, a show about a certain type of characters is not necessarily _targeted_ to that audience.

The gist of your argument is that since (1) geeks are more prominent in pop culture lately, (2) BBT is a comedy about geeks, then it follows that (3) BBT must be a show _for_ geeks. Certainly that's possible, but where's the evidence? Another possibility is that the show is targeted towards people who know a geek (which is a much larger audience... essentially everyone).

> _" in BBT the content is all about the geek references, and nothing is > generic and universal."_

I disagree. BBT is a comedy, and the content is the jokes, 99% of which, you don't actually have to be a geek to get (it certainly helps if you know a geek or are familiar with the geek stereotype).

Yes, BBT includes geek references. So what? Excuse the "dreadful counter- examples", but ER included medical references, MASH included military references, etc. That's required by concept of the show.

I think the most damning evidence against your claim is BBT's audience. It's a wildly successful show, yet so many self-identified geeks on Internet have problems with it (mainly the ones who think it should be a show just for them. Hmm.) So the burden of proof that it's actually a show specifically for geeks (but just happens to appeal to non-geeks) is on you. And you presented no evidence.

<comment><USER6> > _The gist of your argument is that since (1) geeks are more prominent in pop > culture lately, (2) BBT is a comedy about geeks, then it follows that (3) > BBT must be a show for geeks._

No, I'm not arguing anything. I'm not into formal reasoning in common discussions.

What I said is BBT _is_ a show for geeks, period. The other stuff I said to explain why they made it so, not to prove that it is so.

So I offer no "evidence" and no "proof" (that would be too geeky in itself) -- just my opinion that BBT is a show targeted at the general geek audience, take it or leave it.

> _Yes, BBT includes geek references. So what? Excuse the "dreadful counter- > examples", but ER included medical references, MASH included military > references, etc. That's required by concept of the show._

I think I answered that objection in my original comment: while those shows also contain references, the difference is that BBT "is all about the geek references, and nothing is generic and universal".

</comment></comment></comment></comment></comment></comment></comment></comment></comment><comment><USER7> The Big Bang Theory is a horrible piece of television. It's so horribly cliched that I feel somewhat insulted that it perpetuates the overused stereotypes that nerds are socially awkward people who are afraid of girls, love Star Trek, wear thick-rimmed glasses, idolise Stephen Hawking and have bad people skills.

Good on them for having science consultants to get the science part of the show right, but the show is uncomfortable to watch. BBT is a dumb show about smart people. A show that repeats beaten to death stereotypes about nerds and jocks, a show that does nothing to break the status quo that smart people are the only hope this world has and that all smart people aren't comic book loving introverts who never go out and are 40 year old virgins.

Obviously I am not the target of this show nor are any of my educated friends with degrees. But I can tell you the stereotype of what smart people actually are is completely wrong because smart people can't be pigeon holed into a certain category. Everyone is different; you have your introverts and extroverts, your comic book readers and non-comic-book readers.

As usual I am overreacting. I have a passionate disdain for this show and know of many others who feel exactly the same way. I didn't intend for this to sound like a rant, it's somewhat out of place, but felt it had to be said.

<comment><USER8> Us people who are "stereotyped" by this show think it's very funny, and don't really need you to be the white knight that saves us from a terrible Hollywood sitcom. If there's anything offensive here, it's your condescending attitude.

Did you similarly rail on "Sex in the City" for not realistically portraying women and sexuality?

<comment><USER7> What exactly is funny about Big Bang Theory? I'm not trying to be a "white knight" here. I was giving an opinion on a show that I know many people dislike due to its over-the-top and unfunny stereotype perpetuating...

I'm sorry if you think I am being condescending, but not once did I insult or single out any particular individual, I called out a show which is definitely not funny for being completely unoriginal. I didn't call out people that watch the show, if you watch it and like it, then good for you, I'm not saying you are a bad person or any less of a person for doing so.

Your comment is condescending if you want to get specific. You've singled me out for having an opinion on a show you share a different opinion on. Who's the bad guy here? Keep things civil buddy, stop trying to bait me, it won't work. Run along now.

</comment></comment></comment><comment><USER9> "Saltzberg says he became a scientist partly because of popular culture, such as Isaac Asimov's science fiction and the '70s TV show Space: 1999. He believes the rigor and passion for science he brings to The Big Bang Theory might inspire kids in the audience to one day become scientists, too."

Could be right there. When I searched Instagram for #bbt once, I found a couple of posts like 'I wish my friends were this smart' or 'I want to be a nerd too' with pics from the series. I think the series may give science a good image.

</comment><comment><USER10> The show gets some interesting aspects of physics culture right. For example, there's the chauvinism of theorists over experimentalists. I was a bit surprised by this when I first encountered it, but I soon came to realize it's probably motivated by jealously and rejection. Experimentalists operate under the constraint of having to realize a test of one theory and stick with that same theory for months or years at a time, but they get all the cool toys plus the potential for real "Eureaka!" moments (even if those are exceedingly rare). Most theorists would never admit to being jealous of this but, at the same time, they cannot deny being jealous when their colleagues get to work with experimentalists. There are a lot more theorists out there creating material to test than there are labs able to test material! Theorists need to develop tough skin to handle all the times their theories are dismissed as "uninteresting" by experimentalists who define "interesting" as "something we can test". To make matters worse, many experimentalists are also damned good theorists. They're the physics-world equivalent of geniuses who are also first-class jocks!

It makes sense for Sheldon to be the ultimate theorist chauvinist since he works with string theory, which is, so far, not of much interest to experimentalists because its so impractical to test! Salzburg is definitely a theorist, and it shows. The whiteboards may be correct most of the time, but the lab scenes are just painfully bad! All they really amount to is, "Hey look! Lasers!". Having a consultant around to check your white-boards is fine, but they should send the writers to intern in an experimental lab for a bit if they ever want to move past seeing the world through Sheldon's eyes.

P.S. I specifically watched this show because, when you tell people you work in physics, BBT is the first thing they think of. If there's a TV show specifically about your profession it's surprisingly awkward to be completely ignorant of it!

<comment><USER11> I guess it is a counter-reaction to Einstein not getting more than one Nobel prize for all he did.

Back then, experimental physics was perceived as the 'real' physics, and guys like Einstein were 'mathematicians' meddling with physics.

Source: Einstein and Feynman biographies.

</comment></comment><comment><USER12> What baffles me is that David Salzberg is a _professor_ works tirelessly to get the science correct on BBT, and yet this gentleman was unable to correct the incredible, mind-bogglingly bad episode "The Tenure Turbulence", where every possible aspect of _tenure_ appears to come from some alternate universe unrelated to Earth. This episode is so far beyond wrong I don't know where to start. David knows how tenure works: indeed he might be the only person working for the show who does (besides maybe Bialik). Why wouldn't they consult him?

<comment><USER13> I thought the same of the hacking scenes in _Swordfish_... then I realised that the movie isn't meant for me. It was meant for a mainstream audience that has no idea what hacking is - and instead they get a visual representation of 'hard, technical'. I imagine the same thing goes with that episode - I haven't seen it, but I'm guessing that tenure was just used as a mere plot device rather than a topic to explore.

<comment><USER12> > I thought the same of the hacking scenes in Swordfish... then I realised > that the movie isn't meant for me.

No, I get that. But using this logic, BBT shouldn't be making any attempt to get the physics right either. After all, it's not a show for physicists.

Why the inconsistency?

<comment><USER13> Someone elsewhere in the thread mentions that the whiteboards are just background scenery. The sitcom itself is pretty formulaic, written by the same writers as every other such sitcom. Changing the scenery is much easier, as opposed to changing how these writers understand their material, I guess.

<comment><USER12> But he doesn't just consult on the whiteboards. He consults on many aspects of the show that touches on science, and that importantly includes scripts.

</comment></comment></comment></comment></comment><comment><USER14> Relax guys and gals. This show, much like most everything you see on TV and in the movies, is a caricature. It is not reality.

The formula is simple: Turn your brain down to "slow" and have a good time. Don't take any of it seriously. It's not real. It's television.

Some of the writing is hilariously funny. I have worked with people that exhibited some of these characteristics (not all). Some were great engineers but had the social skills of a brick. Most are nothing like these characters. They have varied interests and really full and active personal and family lives outside of work.

</comment><comment><USER15> My favorite nerdy character is Walter "I'm in the [http://www.classicempire.com](http://www.classicempire.com) business" White.

<comment><USER16> I watched most of Breaking Bad for the first time this summer (all but the final eight episodes), and while I really like Walt at the beginning, these last few episodes (really starting with _Say My Name_ , the second to last episode in the first half of season five) my like started to wane. I still like the character, but not as much...

I think Abed Nadir from Community is more my type of nerd. Probably because I find the character similar to myself.

</comment></comment><comment><USER15> I enjoyed seasons 1-5, but season 6 is just rehashing the same old stuff. Past time for the show to hang up.

</comment><comment><USER17> The show Numb3rs had a similar thing, mathematicians to check accuracy. :)

</comment><comment><USER18> I'm always surprised this show is popular among the user base here. From what I've seen it's aimed at 14 year old girls who think they are ``nerdy'' because they wear glasses and have a Nintendo t-shirt. Bazinga!</comment>


Apple's Shortcuts will flip the switch on Siri's potential - <AUTHOR> https://techcrunch.com/2018/07/08/shortcuts-will-flip-the-switch-for-apple-on-siris-potential-just-not-how-you-think/ <comment><USER2> Cognitive science has a term called "Theory of Mind" (ToM), which refers a human cognitive ability that typically emerges in 4 year olds (In fact there is a famous experiment you should look up and try if you have any kids/nieces/nephews around that age), whereby humans are able to formulate the mind of another entity (the capacity it's working at; information it holds, and doesn't). This is what allows us to, for example, tell a lie. It also allows us to modify our approach in the way we communicate with dogs vs children vs adults, for better communication efficacy (or two different adults where one has high and one has low expertise in some domain, like programming).

In my opinion the biggest thing preventing me from using siri is not what it can and cannot do, but that it has been nearly impossible for me to develop a ToM for Siri. And since I simply dont know what siri is capable of, I only use this bot for a very narrow set of tasks. Furthermore one of my ToM priors for siri is that she has a mind that is incapable of learning. This is a big turnoff - bigger than i think we acknowledge; since we are used to interacting with entities that can, even if laboriously. For instance my Australian shepherd might not be able to bring me the newspaper; but if I really wanted her to do that task, I could slowly get her to approximate that behavior, and it would probably be satisfying to see progress in performance. With siri, I simply assume there are things she can do and things she cannot, and it'd be pointless to try and goad her into adding even a trivial task to her functional repertoire.

<comment><USER3> The lack of learning is what also bugs me about all the new tech. It's being used for targeted ads, and stuff like that, but not for trivial tasks that would actually improve my interaction with the interface. A few things that come to mind, are that I always listen to music as full albums, and yet the UIs still always try to get my to shuffle various playlists. Every day around the same time I text my partner nearly the same message, "I'm leaving work." and yet autocomplete still suggests other phrases. If I click the share button, I then go through 6 steps to share the article via a text message with the same person. Imagine if clicking share offered one click of "Would you like to send this as a text message to Jane?"

I'm not a fan of the current AI craze, and happily like my devices somewhat stupid, but if they're going to try and be smart, at least learn my predictable behaviors, and offer me shortcuts on those.

It's unclear to me what these new shortcuts really offer, but I'll be interested to try them. However I have a hunch what I want is actually even simpler than these will provide.

<comment><USER4> So I currently use a combination of Launch Center Pro and Workflow (the developer of which was purchased by Apple last year, and appears to be the source of what has now become Siri Shortcuts) to do what you're describing.

I have a Workflow that when run, uses Maps to estimate the drive time between wherever I am and my house, pads the estimate by 5 minutes, then adds that to the current time to get an ETA, formats it into a text message and sends the ETA to my wife.

In Launch Center Pro, I have a geo-fenced shortcut that presents a notification to run my workflow whenever it sees that I have left the area around my office building.

The UX is, halfway between my office building and my car, I get a notification from LCP - I tap the notification, Workflow thinks for a minute, and presents me with a text message to my wife and I tap "send".

As nice as this is already, I believe Siri Shortcuts may improve it in several ways:

1) Currently, apps are not allowed to send messages without explicit user interaction, so Workflow can't actually text my wife, it just presents me with an imessage screen and an already-written message that I must tap "send" on

2) Workflow does not support geofenced or time-based running of workflows, hence why I need LCP to launch my Workflow based on a geofence. If Siri Shortcuts supports this, then I won't have to rely on LCP anymore.

3) There is no way (that I'm aware of) to trigger my workflow automatically, I must tap a notification and unlock my phone, or run an app and select the workflow within it. An improvement would be a programmable Siri Shortcut ("Hey Siri, let my wife know my ETA"), and even better would be automatic running of workflows based on defined conditions, so my workflow would run and send a message automatically when crossing the geofence without me even needing to be aware of it (besides maybe a notification that lets me know the workflow has run).

<comment><USER5> According to this article[0] those annoyances are still there

> _It does look like certain annoyances with Workflow are showing in Shortcuts > as well. For example, sending a message via a Shortcut still requires you to > manually hit the send button_

[0] [https://9to5mac.com/2018/07/06/apple-shortcuts-hands- on/](https://9to5mac.com/2018/07/06/apple-shortcuts-hands-on/)

</comment></comment></comment></comment><comment><USER6> I'm the developer of a popular timetable/schedule app for college. It seems like the perfect use case for Siri: "What class do I have next?".

Up until now it hasn't been possible due to the restrictive API. I've looked into the new shortcuts and Siri API docs and although the beta documentation is sparse, I'm confident I'll be able to develop a natural, first class Siri integration.

Unfortunately, it won't be trivial to implement (at least to do well). It probably won't be done before the iOS 12 release, and I'm hesitant to start working it just yet due to the sparse beta docs.

Over the next year or two, I think there will be some great Siri integrations built. Hopefully, users discover and use them :)

<comment><USER7> I always wanted something like this in my uni days, but was always too lazy to make it! More importantly than what, "Hey Siri, where's my next class?" ;)

-e- heh, quick LinkedIn stalk reveals you went to UC at the same time as me!

<comment><USER8> Isn't that just.. a calendar?

<comment><USER9> This is what I did. Create a 'Uni' calendar and fill it with your class days and times - with repeats used as necessary.

Irritatingly, Siri doesn't distinguish between calendars so you can't reel off just classes, but you can ask about the day or the next 'event'.

Personally I found this setup along with Apple's 'Up Next' widget and Siri Apple Watch face to be way better than any other class management app I tried.

<comment><USER8> Many even publish iCalendar files ready to import. I actually ended up writing a custom scraper for my HS[1], after which the LMS provider actually wrote their own exporter fairly quickly.

I guess they weren't too happy one of the kids had to keep a database of all of their students' passwords... :P

[1]: [https://github.com/teozkr/schoolsoftsync](https://github.com/teozkr/schoolsoftsync)

</comment></comment></comment></comment></comment><comment><USER10> > Also, Shortcuts don't require the web to work – the voice triggers might not > work, but the suggestions and Shortcuts app give you a place to use your > assistant voicelessly. And importantly, Shortcuts can use the full power of > the web when they need to.

> This user-centric approach paired with the technical aspects of how > Shortcuts works gives Apple's assistant a leg up for any consumers who find > privacy important. Essentially, Apple devices are only listening for "Hey > Siri", then the available Siri domains + your own custom trigger phrases.

I don't get it. How is this different from Android? Android Actions [0] were announced before this. I think Assistant also works offline (with most voice commands + in voiceless mode).

[0] [https://developer.android.com/guide/actions/](https://developer.android.com/guide/actions/)

<comment><USER11> SiriKit and Siri Shortcuts are very different things.

SiriKit allows you to build Siri support into your app a la Android Actions, but Siri Shortcuts is designed to allow drag-and-drop end-user "programming" of workflows that can be triggered by Siri.

"Hey Siri, I'm on my way home" could turn on you thermostat up, order you a pizza, remotely trigger your IoT enabled kettle and start playing your home- commute playlist.

For the more advanced of us, Workflow _currently_ allows doing things like calling arbitrary REST APIs and parsing JSON. I've reverse engineered the API of a local coffee-ordering app so I can one-click order my morning coffee.

Next thing I'm planning is my "I need a coffee" button which will get the nearest cafe, order me a flat white, and pull up the directions.

<comment><USER12> Yeah, Siri Shortcuts seems more like using Tasker with the AutoVoice plugin.

</comment></comment></comment><comment><USER13> To me, the biggest thing here is that it takes a completely different approach than what has been the traditional path for voice assistants. In the past, it was always the game of waiting either for a custom skill or app, or it was hoping that Google or Amazon would program in some logic for handling a particular case.

Shortcuts enables basically any end user with enough devotion and dedication to short circuit this. It doesn't require them to be an app developer and it doesn't require them to learn code at all. The most basic shortcuts can be created without any if-then-else logic while enabling so much.

I've seen my mom ask her Google Assistant to do things with "and" a lot and they just don't work because command chaining hasn't been implemented. But with Shorcuts, she could conceivably make a chain and designate a phrase to be conversationally equivalent with an "and" in the middle.

Instead of having to explain to family why Siri can't do X or Y, I can just make a Shortcut or show them how, and I've solved the problem rather than explaining why it can't be done.

<comment><USER14> > I've seen my mom ask her Google Assistant to do things with "and" a lot and > they just don't work because command chaining hasn't been implemented

it is implemented. It just doesnt work often (or at all) for foreign languages.

I'am pretty sure this is the next big thing google is updating

> Instead of having to explain to family why Siri can't do X or Y, I can just > make a Shortcut or show them how, and I've solved the problem rather than > explaining why it can't be done.

At least with GA and ifttt you can as of late make your own phrases (and responders). Nothing for the nontechies, but some progress there.

<comment><USER15> Do you know if it's possible to get the Home to respond to some external event? Doesn't seem to be possible to use as a Then with IFTTT (for example "When I arrive home Then say Welcome Home")

I found this:

[https://www.npmjs.com/package/google-home- push](https://www.npmjs.com/package/google-home-push)

Which might let me write my own API to do something but it would be good if it were built in somehow.

<comment><USER14> > Do you know if it's possible to get the Home to respond to some external > event?

Iam actually not sure if this should be the feature of my google home assistent while, ofcourse i see the use cases.

> [https://www.npmjs.com/package/google-home- > push](https://www.npmjs.com/package/google-home-push)

The dependincies show that this uses the [https://github.com/thibauts/node- castv2-client](https://github.com/thibauts/node-castv2-client). So iam guessing this only allows one to use the chromecast api of the google assistent device.

Iam pretty sure the google assistant api will not be open soonish.

</comment></comment></comment></comment><comment><USER16> _> This user-centric approach paired with the technical aspects of how Shortcuts works gives Apple's assistant a leg up for any consumers who find privacy important. Essentially, Apple devices are only listening for "Hey Siri", then the available Siri domains + your own custom trigger phrases. Without exposing your information to the world or teaching a robot to understand everything, Apple gave Siri a slew of capabilities that in many ways can't be matched._

Is there a good doc or video that delineates what data stays on the device vs. being sent to Apple for processing? E.g. how much of this functionality will be available if you are not signed into iCloud?

<comment><USER17> from the keynote, no information is sent to Apple for processing. Whether it'll work if you're not signed into iCloud is a different issue but from the way it's described in various places in the WWDC Keynote, it ought to work just fine without any data connection, like airplane mode and no Wifi.

<comment><USER18> Wouldn't the user's speech data need to be sent to Apple to convert to text, or identify the intent first?

<comment><USER19> We were doing speech recognition 20 years ago without any kind of networking. I dictated part of a term paper in 1995. Dragon Dictate I think is what it was called. You could even navigate the word processor menus and UI with it, or say things like "make that bold" and it usually worked! Just a bit less often often than Siri works actually.

Sure it was more of a novelty, and had to be trained on your voice. But that was 20 years ago.

<comment><USER16> Not only is Dragon still a product, it is owned by Nuance, which helped to develop Siri and drew on SRI research, [https://www.forbes.com/sites/rogerkay/2014/03/24/behind- appl...](https://www.forbes.com/sites/rogerkay/2014/03/24/behind-apples-siri- lies-nuances-speech-recognition/)

<comment><USER20> Hence Siri's name.

</comment></comment></comment></comment></comment></comment><comment><USER21> I agree with this idea for one reason in particular: as a user, truly leveraging Siri requires a manual engagement - the experience is not conversational, it is not like speaking with a person. It is like using a tool - one needs to conscientiously adjust oneself to follow its rules and get it to work as desired.

Users actively taking control over how they use Siri (as in iOS 12 Siri shortcuts) will almost certainly encourage them to more conscientiously adjust their usage behavior patterns.

There exists a general assumption that a voice has a human-intelligence behind it, but obviously now not all voices do. This poses a tough learning curve, as evinced by criticism of Siri as ineffective or plain bad. Yeah, Siri won't respond the same way your boyfriend will when you ask him to find some good Chinese food, or express some feeling. But Siri will excell at setting alarms, or adding an event to the calendar, or starting a meditation with Timeless. It comes down to matching the language to the tool / following a protocol. It comes down to manually engaging with precision.

<comment><USER22> > Siri won't respond the same way your boyfriend will when you ask him to find > some good Chinese food, or express some feeling

I think Siri did pretty well when I asked her these:

Q: Find me some good Chinese food

Siri: I found four Chinese restaurants a little ways from you:

Q: How are you?

Siri: Very well, thank you!

<comment><USER23> That's about the only things Siri can handle without completely blowing it.

<comment><USER24> I use Siri the most when I'm driving. It comes in handy for a lot of things then...

Directions. - Take me to X.

Reading text messages - "Read my text messages from my wife" or "Read my last text message"

Reminders - "Remind me to call my X/do X when I get in the car/get out the car/get home/at Y"

Music/Podcasts - Play X/Play a song by Y.

Taking notes, calendar events, (What do I have to do today?)

</comment></comment></comment></comment><comment><USER25> It's great to see Apple finally add some powerful customization, and for power users this is fantastic, but to average users this makes no difference. When it comes to normal queries, Siri is still far behind. Sure, with some extra work I can get almost any query to work, but most users don't want to manually code up all their queries.

<comment><USER26> Perhaps it's already there, but I wonder if shortcuts will be able to be shared or there will be a library for them. So someone can pre-define all sorts of stuff, then I as a "basic" user can just add the shortcut vs. having to "program" it myself.

<comment><USER11> Workflow (the mother of Siri Shortcuts, as I understand it) already has sharing functionality.

For example, this "get travel time to input destination" Workflow: [https://workflow.is/workflows/ff987bcf0ad746d496415d7f4c75a8...](https://workflow.is/workflows/ff987bcf0ad746d496415d7f4c75a872)

<comment><USER22> Shortcuts has this as well.

</comment></comment></comment></comment><comment><USER27> Does anyone know of an extensive list of useful things that people typically ask their voice assistant?

As a non-user, and as someone who types faster than they speak, I find it hard to come up with compelling use-cases.

<comment><USER28> Haven't looked for a list, that'd be a good idea.

So far all I do is:

"Remind me to wake up at 6am" or "Remind me to get my laundry in 30 minutes" (sets it in the todo list reminder app, since the alerts are better than the alarm app)

<comment><USER29> I think you have a lot of company in the "only use Siri to set timers" camp. I also do alarms and appointments, but nothing else is reliable enough.

</comment></comment></comment><comment><USER30> Two of the issues with Siri is that Apple does not like to roll out features unless they work for everyone (across all languages), and discoverability of what it can do against disappointment in what it can't (really, you think defaulting to a Bing search is the best thing to do in this case?)

Siri Shortcuts lets you define your own local command and control phrases from presented actions, effectively solving both issues. It _could_ (depending on per user investment) make Siri way more individually useful.

</comment><comment><USER31> iOS 12 beta is amazing. It is extremely fast and feels like perfection. Hopefully apple will open the OS a little more for customization and apps to do more powerful things then it will truly be perfection.

<comment><USER32> How does it hold up for day to day use? Is it stable enough that could be installed on your main phone without many issues?

<comment><USER33> I've had my lock screen flip out a couple times, once requiring a manual reboot of my phone. The notifications list has graphical glitches. Some third- party apps are suspiciously crashy. It's probably the least problematic early iOS beta I've used, but like any beta I still wouldn't rely on it if missing a call would be a deal-breaker.

</comment></comment></comment><comment><USER34> That's all good but I hope that Siri can be improved to understand voices like mine (a native Greek so my English accent is not perfect). Siri understands 40-50% of what I say. Google (on iOS, so same hardware) is more like 80-90%.

<comment><USER35> Google's voice recognition is nuts. One time I fired up Google's voice search and fed it some of the MST3K names for Dave Ryder from _Space Mutiny_ (e.g., "Punch Rockgroin", "Blast Hardcheese", "Splint Chesthair", "Big McLargehuge", etc.) and was surprised at how many of the searches it got right -- capitalization, spacing, and all.

</comment></comment><comment><USER36> To demonstrate what Shortcuts will be able to do, here's someone writing a C parser in Workflow (a predecessor to Shortcuts):

[https://twitter.com/uroboro845/status/985169126871224321](https://twitter.com/uroboro845/status/985169126871224321)

(One of the replies is by Ari Weinstein, who is currently on the Siri Shortcuts team)

</comment><comment><USER37> Think of Shortcuts as a visual scripting language that leverages app functionality and ties into Siri.

Either you can use drag and drop to write your own scripts, or you can run scripts written by others.

You can run your scripts in a variety of ways, including a trigger phrase you set with Siri.

Here's a short video showing the creation of a very simple script in an older version of the program.

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

If you are a podcaster, you might create a more complicated script that converts a source audio file to MP3, adds MP3 tags and artwork to the resulting file and then uses FTP to upload the result to your podcasting network.

Another script idea would be to text someone a list of the blocks of free time you have open during a given workday based on your calendar data to help set up a meeting.

The possibilities are wide open. You can even tie directly into web API's.

</comment><comment><USER38> But does anybody know whether it will finally be possible for me to ask Siri to give me directions to my next appointment?

I've been waiting for this obvious functionality for years.

<comment><USER39> Yep, you can do that. This weekend I made a shortcut that goes through your calendar, finds the next appointment, and then picks your maps app of choice to load up directions into.

I took it another step further and am working on a version where it looks at the prices on Lyft and Uber, presents you with the respective options, and calls a ride to your next appointment. Shortcuts in iOS 12 are a real fun little thing to play with, the most fun I've had programming in a while.

Happy to send it to you. I looked for your contact info but couldn't find any way to contact you, but feel free to reach out in my profile if you want.

<comment><USER38> I'm not running the beta, so I guess don't bother. I'm sure I'll have fun creating it myself in a few months. :)

</comment></comment></comment><comment><USER40> Looks like this update still won't let you ask Siri to play a specific song on any service except Apple Music, which is definitely my biggest gripe with Siri and the iPhone at large since switching from Android. I would switch to Apple Music, except then there'd be no way to wirelessly cast/play music through my component stereo. Semi related, if anyone has solutions to this problem I'd be very appreciative.

</comment><comment><USER41> A lot of people seem to mention Assistant Routines, but the major problem here is that it's not available in a lot of countries outside the US (even not the UK..), meaning it's not actually an alternative for the majority of the world.

The funny bit is though, that your Google Home will still recommend that you set up routines for things, except you just...can't.

Since I don't have it available myself, I cannot comment much on it, but while searching for why it wasn't appearing in the Home app, I certainly didn't get the impression that people are impressed by it :(

</comment><comment><USER42> This is great for developers, but pointless for users. It doesn't change the user behavior, and the research shows people are using VA at home and nowhere else...a place better suited to Google Home and Echo.

There've been a lot of attempts by Apple to create richer hooks into apps like search integration, but they don't do much for engagement. There's some good ideas out there, along with anecdotal successes, but the interaction model isn't great and better app integration won't fix that.

<comment><USER43> I use Siri on my phone all the time. Do you have a link to that research? I haven't heard that before.

Given that iOS will be prompting people with possible Shortcuts based on what they do frequently I can easily see people starting to adopt this.

I don't think you have to use Siri to trigger these, it's just an obvious easy/fast way. Users could still use the shortcut app or widget to do it.

As I've been watching some of the Apple community on Twitter since this started to go into beta they've already produced some fun/surprising stuff. This seems like it's going to be a BIG deal.

<comment><USER42> This is the best I can do right now. It isn't where I originally read it but google is failing me. [https://creativestrategies.com/voice-assistant-anyone- yes-pl...](https://creativestrategies.com/voice-assistant-anyone-yes-please- but-not-in-public/)

What it comes to is the people on HN don't represent most people using iPhones.

</comment></comment></comment><comment><USER44> I personally turn off all notifications on my iPhone (except for a few select apps) and do not use Siri.

I can tell you that the Siri suggestions in Search really annoyed me (usually use search to find... apps, not to be fed all the crap from random apps).

I want a clean, non-intrusive experience. Apple should focus making the hardware better and to get the software out of the way (don't make me think about it) instead of pulling all this crap on its users in the name of innovations.

<comment><USER45> > I can tell you that the Siri suggestions in Search really annoyed me > (usually use search to find... apps, not to be fed all the crap from random > apps).

In iOS 11 the delay for searhing for apps is unacceptable. instead of displaying the apps found right away (substring match over all apps should be instantaneous), it waits until all the crap from Siri and other random apps is fetched.

<comment> matt-attack Agreed. The _only_ way I find & launch apps (besides the 4 on the dock) is by swipe-down from the middle of the homescreen, to reveal search, then to search for the app's name. This is very analogous to how I launch apps in OSX, namely command-SPACE, then start typing the application name.

It's extremely frustrating when iOS takes forever to find an app, or worse proioritizes all kinds of other garbage _before_ the app's icon. If I type "waz" and I have the Waze app installed, I sure as hell expect to see the Waze icon instantly at the very top. Ideally, after typing just the "W".

<comment><USER11> You'll be pleased to know that the results in iOS 12 instantly reveal the first four-matching installed apps. (Instantly meaning "I can't really determine how long it takes, because it's probably somewhere under 100ms")

All of the other stuff loads very quickly. Mail results are very very quick (over 3 inboxes containing over 100,000 mail items), and then a-bit-less-quick for the Siri search suggestions.

I'm actually shocked at how much iOS 12 improved responsiveness.

<comment><USER46> also was very surprised, its been one of the most notable perceived performance jumps between major releases probably ever

</comment></comment></comment></comment></comment><comment><USER47> I switched to car play and use Siri a lot more then I used to. For most things it is fine. Others... this could help.

One thing I would like to know is why Siri cannot answer basic questions about what music is on my phone. For example, "what albums by New Order do I have on my iPhone?". That does not work but "play album Substance 1987 by New Order" does.

<comment><USER48> Siri on CarPlay is useless for me. Maybe it's my situation (RP British English, driving in Sweden) but it usually takes 10 attempts to get it to recognise a track I want to be played, and getting routing information is easily double that for anything other than 'drive home'. I one tried to get it to route me to 'Malmö' (third largest city in Sweden) and gave up after 30 attempts. I honestly have no idea what I'm doing wrong, but I suspect nothing and it's just useless software.

<comment><USER49> I'm not sure if this has changed yet, but until recently Siri regularly failed to recognize artists, albums or titles, which often happen to be english, if the device/siri was set to a different language. In my case that's german and I can't count the number of times I had to pronounce the artists I wanted Siri to play in a ridiculously german way.

English is so ubiquitous that, in my opinion, all Siri queries should be checked for both local language and english.

<comment><USER47> Yup. Mixed language is a pain. Set to English by default but when I ask for something in Japanese or Mandarin it does no work well.

</comment></comment></comment></comment><comment><USER50> To run an Alexa skill on iPhone you need to install the Alexa app and the Amazon app and use your Amazon app to handle the voice part. Then open the Alexa app to view the card. I hope I'm understanding the hype of the article correctly in that I can build a native app and use Siri to interact with it.

</comment><comment><USER17> This is a great example of how owning the entire stack from CPU on up to user interface allows a company to do things that others just can't. Whether it's any good or not, well, time will tell. But it's not even possible for any other company (maybe Google with the Pixel, maybe).

<comment><USER18> I don't see why this could not be possible on Android. All Google needs to do is build an API for Assistant that other apps can use to 'donate' frequently used actions/intents. Assistant can then make suggestions to users based on its own analysis of users' activities in the same way Siri does.

<comment><USER51> Apple could feasibly go further and do integration with macOS Siri as well down the line I'd imagine - Google can't do that nearly as deeply.

<comment><USER52> Why? Can you explain that reasoning? Google already shipped full integration of Assistant into their ChromeOS.

<comment><USER53> I am seeing a trend in this thread, that people think that Google Assistant doesn't have something whereas in reality it has already implemented all and more than what Apple did this year. Either, they are biased and are making assumptions, or they use Siri and are again making assumptions . Partly, another reason might be that Routines is within the Assistant Settings so people haven't discovered. Still, seems odd at a site like this. Frustrating.

</comment></comment></comment></comment></comment><comment><USER54> I just want macros. I would love to have a single button that does in OS functions, like having a button for EQ settings, or to launch a specific website in a browser (such as a different weather service)

</comment><comment><USER55> So basically they exposed an API to add to Siri a new skills. I wonder whether other platform already did simillar things? CMIIW, Cortana already exposed an API for us right?

<comment><USER43> Really they've combined two things. They took an app called workflow, which they bought, would you can use to automate things on iOS. They extended it dramatically, and then added the magic ingredient of making it possible to have Siri call those actions that you define. Plus some AI stuff to suggest shortcuts for things you do frequently.

Alexa is quite popular because it has so many skills the people have created for it. That's one of the reasons people claim Siri has been "behind" and Amazon's Echo devices have been doing so well.

I don't know if Cortana or Bixby support anything like this.

<comment><USER10> Android has the same features:

[https://developer.android.com/guide/actions/](https://developer.android.com/guide/actions/)

[https://techcrunch.com/2018/05/08/google-launches- slices/](https://techcrunch.com/2018/05/08/google-launches-slices/)

</comment></comment></comment><comment><USER56> "hey Siri, destroy all evidence!" phone begins wipe

<comment><USER22> I'm sure you're trying to be humorous, but just in case you're not, this isn't something that Shortcuts lets you do.

</comment></comment><comment><USER57> I also think this is going to revolutionise the TouchBar.

The ability to have contextual shortcuts could be pretty powerful.

<comment><USER43> I think this is iOS only for now, but it seems like a very obvious thing to port to the Mac.

<comment><USER22> It's already there in the form of Automator and AppleScript.

<comment><USER43> That's a different way of automating things. Automater seems to have been ignored, and AppleScript is quite old and people have been worried about for years.

</comment></comment></comment></comment><comment><USER58> So, is it ready to do the complex task just like google and amazon echo?

<comment><USER59> Does Google finally allows user to configure top-level actions, instead of the silly "Ok Google, ask $someapp to do something" (where what I want is simply "Ok Google, do something")?

<comment><USER23> Or even better just "$act" when I'm alone in the room!

The "Ok Alexa ask $someapp to …" prefix is disgusting.

</comment></comment></comment><comment><USER60> Saw someone else comment on a different TechCrunch article here on HN about how these articles about Apple read like press releases. I really feel that now.

<comment><USER61> As a PM, this article is what I would write as sample press coverage I'd like for a product release.

Interesting to see that the author is a former PR member of [http://my.workflow.is/](http://my.workflow.is/) \+ has one recent article for TechCrunch.

Oh hey looks they were purchased by Apple: [https://techcrunch.com/2017/03/22/apple-has-acquired- workflo...](https://techcrunch.com/2017/03/22/apple-has-acquired-workflow-a- powerful-automation-tool-for-ipad-and-iphone/)

Quick Edit: I'm not saying that this isn't good technology, rather I'm more concerned that TechCrunch is taking contributors who have ties to products being reported on and may have interests that are not being communicated to readers.

<comment><USER62> Yeah, this is native advertising and it's Everywhere.

<comment><USER63> "Native advertising" sounds very much like the MBA-term for what I would call "deception".

(I'm not accusing you of anything, just making commentary)

</comment></comment></comment></comment><comment><USER64> Sounds like Automator for dummies.

<comment><USER22> A dumbed-down Automator, _maybe_. Please don't insult the users of Workflow.

<comment><USER64> I'm not insulting anyone. "X for dummies" is a book series.

<comment><USER65> Which doesn't make it any less insulting.</comment></comment></comment></comment>


The Race Is on to Control Artificial Intelligence, and Tech's Future - <AUTHOR> http://www.nytimes.com/2016/03/26/technology/the-race-is-on-to-control-artificial-intelligence-and-techs-future.html <comment><USER2> Im guessing the PhD candidate they're referring to is kaparthy.

<comment><AUTHOR> That seemed to be the consensus on /r/machinelearning as well.</comment></comment>


Background music for programming sessions - <AUTHOR> http://www.youtube.com/playlist?list=PL48627FA5F1896833

<comment><AUTHOR> The other day I was looking for some music to listen to while programming. I found this playlist, whose serene music I enjoyed, but which didn't get in the way of my concentration.

You can click on the Play All button, or follow this link: [http://www.youtube.com/watch?v=uRXJ7IMcZhY&list=PL48627F...](http://www.youtube.com/watch?v=uRXJ7IMcZhY&list=PL48627FA5F1896833&feature=plpp_play_all)</comment>


Ask HN: How do you handle sensitive information (passwords, SSH keys, etc.)? - <AUTHOR>

I'd like to get some ideas of proper procedures for handling sensitive information of your company. Something like: how do you store your SSH keys, who can access those and how, how are they backed up, where are they stored?<p>Basically I'd like to prepare detailed procedure (checklist?) that would lower the possibility of losing this kind of important data. <comment><USER3> I'm working on a two-man project.

1\. All sensitive information is encrypted.

2\. SSH keys are password protected.

3\. I store passwords in LastPass, with a unique master password.

4\. SSH keys are stored on my own computer and backed up with Dropbox.

Point #4 is obviously the weakest link, so I am looking to change that. However, so far, Dropbox's ubiquity justifies it. When my laptop died, I was able to download setup a new development machine in minutes.

</comment><comment><USER4> For passwords and other sensitive, text-type, info: KeePass in Dropbox for syncing <http://keepass.info/>

For SSH keys, tax returns, other sensitive documents: True Crypt volume <http://www.truecrypt.org/>

</comment><comment><USER5> [http://www.cyber-ark.com/digital-vault- products/enterprise-p...](http://www.cyber-ark.com/digital-vault- products/enterprise-password/index.asp) is something I've worked with, though I've never seen what I would consider a well integrated deployment

</comment><comment><USER6> Passphrase-protected SSH keys on an encrypted disk. The latter is key - <USER2> makes mistakes so much less likely.</comment>


Dating Market Thesis Summary [pdf] - <AUTHOR> https://gallery.mailchimp.com/2506bda6ca9a8b7ce8b3c54b4/files/1a8cc94c-6198-4f3d-b27d-8a6060ed6c5d/Tyro_Dating_Market_Thesis_Final_For_Twitter_Pub_v2.pdf <comment><USER2> Interesting one. I wonder why it's hosted under mailchimp if the research is done by TYRO</comment>


PipelineDB 1.0 – High-Performance Time-Series Aggregation for PostgreSQL - <AUTHOR> https://www.pipelinedb.com/blog/pipelinedb-1-0-0-high-performance-time-series-aggregation-for-postgresql <comment><USER2> PipelineDB = Insert data with time component to be aggregated on the fly into always up-to-date summary tables using a variety of aggregation functions. Raw data is not persisted.

TimescaleDB = Store data with time component into "hypertable" that is automatically partitioned by time, for faster queries when limited by time range. Single node and has helper methods to make time based bucketing and aggregation easier.

Citus = Store data in distributed tables automatically partitioned and spread across multiple nodes, by any single column. Join across nodes with non- distributed tables.

Can definitely use PipelineDB for real-time summaries and TimescaleDB or Citus for raw long-term storage in the same database.

Side note: It would be nice if Postgres had package manager for extensions.

<comment><USER3> Thanks for the great summary, manigandham.

We're actively working on the scale-out version of TimescaleDB that will allow you to transparently shard hypertables across many servers. Hope to announce more specifics in the next several months.

<comment><USER4> What is wrong with citus? Why reimplement it?

<comment><USER5> Use TimescaleDB if you have time-series data, if you want to scale out your OLTP workload then Citus is what you're looking for.

<comment><USER6> Citus is also used for large time-series / analytics use cases e.g. [https://www.citusdata.com/customers/heap](https://www.citusdata.com/customers/heap)

There's a question of what you actually want to do with the time-series data. If you don't expect to have much data or just want to store it and maybe occassionally query it, then a single server with partitioning (e.g. through pg_partman, Timescale) might be enough. If you want to build an analytical dashboard that needs to remain fast even if you're dealing with many users and terabytes of data per day, then you probably need Citus.

Citus can load, aggregate and query the data in parallel using all the cores in the cluster. It also supports Postgres' native partitioning and pg_partman: [https://www.citusdata.com/blog/2018/01/24/citus-and-pg- partm...](https://www.citusdata.com/blog/2018/01/24/citus-and-pg-partman- creating-a-scalable-time-series-database-on-PostgreSQL/)

<comment><USER5> AFAIK Heap uses Citus but also has an internal partitioning scheduler for their customer event data so I don't think that they're a good example. Timescale doesn't support scaling out yet but it's in their roadmap so let's wait for them to implement for a fair conclusion.

If you're going to create roll-up tables and power your dashboard using those tables, you're fine with both options IMO. Cloudflare was also using Citus exactly for this use-case before they switched to Clickhouse.

If you have ad-hoc use-cases for time-series data, Timescale might be a better option because it's built exactly for this use-case and it knows the semantics of the data so it can partition the data in an optimized way and perform some optimizations such as parallelized operations and re-sizing chunks. In that sense, it's comparable to Influxdb, not Citus.

</comment></comment></comment></comment></comment></comment><comment><USER7> Has anyone tried to mix pipelinedb with timescale[1] , I think both are working on different side of playing with timeseries data ?

[1][https://www.timescale.com/how-it-works](https://www.timescale.com/how-it- works)

<comment><USER8> theoretically sounds like a perfect match

</comment></comment><comment><USER9> I've been following Pipeline since the beginning and it's so fricking cool. Please, if you can't think of a good use of Pipeline, use it instead of a count(*)! :D

<comment><AUTHOR> (Jeff, PipelineDB Co-Founder here) - thanks, Chucky! We appreciate your support!

</comment></comment><comment><USER10> Interesting, this seems to be the other side of the postgres time series extension coin.

TimescaleDB for writes, PipelineDB for reads.

<comment><USER11> I'm Derek, one of the co-founders--that's an interesting way to frame it, I think that makes a lot of sense at a high level.

We're in contact with the TSDB founders (awesome and super smart guys!) and are in the early stages of figuring out an integration that makes sense. That's most likely going to happen.

To anyone interested: we'd love to hear and consider your ideas re: TSDB integration. Feel free to open an issue in either repo (or add to an existing one) and tell us more!

<comment><USER12> Can you guys join forces and convince AWS to make both of those products available on RDS? :)

<comment><USER8> So basically AWS will monetize something they have spent 0 resources building and will likely cannibalise the only viable monetization option?

<comment><USER13> Surely not, AWS has never done _anything_ like that!

</comment></comment></comment></comment></comment><comment><USER14> How does this compare to TimescaleDB?

Are they solving the same problem in different ways or are they complementary projects? If it's the latter, what would that look like?

<comment><USER15> (Timescale founder) I'd say they are quite complementary. More here: [https://news.ycombinator.com/item?id=18298004](https://news.ycombinator.com/item?id=18298004)

</comment></comment><comment><USER16> Hoping this gains some traction as a defacto extension for cloud hosted postgresql. I think this is probably as useful as plv8 for a lot of use cases.

</comment><comment> the-alchemist And it supports Postgres 10.x!

[http://docs.pipelinedb.com/installation.html#install- postgre...](http://docs.pipelinedb.com/installation.html#install-postgresql)

Can't wait for Postgres 11 support.

<comment><AUTHOR> PostgreSQL 11 support is imminent =)

</comment></comment><comment><USER17> Looking over this cursorily, looks super cool.

        INSERT INTO events_stream (ts, value) VALUES (now(), '0ef346ac');

> As soon as the continuous view reads new incoming events and the distinct > count is updated the reflect new information, the raw events will be > discarded.

So you create a table, insert into it, and it's always empty. Is that right?

Does this work for any table in pg? How does pg know that the insert should NOT actually insert a row?

<comment><AUTHOR> This only applies to continuous views, not all PG tables. Think of continuous views in PipelineDB as very high throughput, incrementally updated materialized views. Raw data hits continuous queries in PipelineDB (continuous views) and only the output of the continuous queries is stored. So 1 billion events ingested could be distilled down into a single row that incrementally counts up from 1 => 1 billion as each data point arrives, instead of storing all of the 1 billion raw data points and counting them up later.

<comment><USER18> You can't really do that with distinct, as if you have 1 billion distint entries, you essentially have to store all of them to dedup.

<comment><USER11> This is precisely why PipelineDB has rich support for data structures such as HyperLogLog [0]. HLL's allow you to track distincts information using fixed- size HLLs that only grow to about 14KB while encoding uniques counts for billions of distinct values. The tradeoff is about a ~0.8% margin of error, which users generally find acceptable.

Furthermore, PipelineDB has a special combine [1] aggregate that allows you to combine data structures such as HLL across multiple rows with no loss of information. A simpler example would be average: to get the _actual_ average of multiple averages you obviously can't simply take the average of all the averages. Their weights must be taken into account, and combine handles that.

The capability to combine aggregate values in this way generalizes to all aggregates in PipelineDB.

[0] [http://docs.pipelinedb.com/aggregates.html#hyperloglog- aggre...](http://docs.pipelinedb.com/aggregates.html#hyperloglog-aggregates)

[1] [http://docs.pipelinedb.com/aggregates.html#combine](http://docs.pipelinedb.com/aggregates.html#combine)

</comment></comment></comment></comment><comment><USER19> Fantastic guys, thank you! I've been looking forward to it becoming an extension for half a year. This is great news.

This basically means Postgres now has continuous views and a toolkbox of functions for running calculations. Combined with PG11 partitioning features and better parallel gusty execution, PG is an even more formidable choice for medium sized data.

</comment><comment><USER20> I work closely in the space of providing time series databases as managed solutions. I can say that I am very happy to see this recent development of new tsd's and this with timescale is a huge bump to the industry/segment. Everybody currently measures some analytics and mostly user data and there is so much abuse with it, yet there is so much more you can measure and do and it is still very early stage. Farms, industrial applications, IoT and so much more. I'd love to just measure temperature and wind speed at unprecedented resolution.

</comment><comment><USER21> Very interesting. Does it aggregate per day? If so, I wonder how it handles time-zone, I mean when to create a new day when you have agents on different time-zones.

<comment><USER11> How aggregations are performed are determined entirely by your own continuous view definitions [0]. In this case I'm guessing you'd want to include a time- based column in the aggregation GROUP BY clause.

And since PipelineDB is a PostgreSQL extension, you can use the timestamptz type (which includes timezone support), and in general you could pretty easily simply normalize your event timezones in your continuous view definitions. When you're reading aggregate data back out, you could cast the time-based column using whatever timezone the client prefers.

Thanks for the question--I hope that was helpful!

[0] [http://docs.pipelinedb.com/continuous- views.html](http://docs.pipelinedb.com/continuous-views.html)

<comment><USER21> Thank you, yes, it was helpful for me to understand the possibilities. I'll dig more into that.

</comment></comment></comment><comment><USER22> Running functions on top of the transaction log(in transaction order) is a really powerful thing.

</comment><comment><USER23> Is most of the intermediate processing done in memory, or is it limited by hd write speed?

<comment><USER11> I'm Derek, one of the co-founders--excellent question!

The former. PipelineDB performs aggregations in memory on microbatches of events, and only merges the aggregate _output_ of each microbatch with what's on disk. This is really the core idea behind why PipelineDB is so performant for continuous time-series aggregation. Microbatch size is configurable: [http://docs.pipelinedb.com/conf.html](http://docs.pipelinedb.com/conf.html).

<comment><USER23> That's awesome! If you don't mind - one more q.. I see that stream-stream joins are not yet supported ([http://docs.pipelinedb.com/joins.html#stream- stream-joins](http://docs.pipelinedb.com/joins.html#stream-stream-joins)). Can you comment on when you think this feature cold land or is it still a ways off?

<comment><AUTHOR> Just out of curiosity, do you have a specific use case that necessitates stream-stream JOINs, or were you just exploring the docs and wondering about this?

<comment><USER23> My use case is pretty much parallel time series alignment with several layers of aggregation. I guess I perceive stream-stream joins as an _easy_ way for me to wrap my head around how to structure my compute graph, but it seems doable with the method mentioned by @grammr. I'd hope for an interface roughly like "CREATE join_stream from (SELECT slow_str.key AS key, sum(slow_str.val, fast_str.val) AS val FROM slow_str, fast_str INNER JOIN ON slow_str.key = fast_str.key)". I do realize there are some tough design decisions for a system like this, but I'd also like to drop my wacky zmq infrastructure ;)

</comment></comment></comment></comment></comment><comment><USER24> How does this compare to Citus?

<comment><USER4> They are completely different products? Citus deals with scaling pipelinedb deals with continuous queries.

<comment><USER25> Citus advertises itself as an excellent way to achieve real-time analytics across billions of rows and tonnes of data, which this product also does.

How both products achieve this is however different.

</comment></comment></comment><comment><USER26> Congrats!

Also, how's stride.io doing?

<comment><USER11> I'm Derek, one of the co-founders--thank you!

We're super happy with where Stride is at! We've continued to onboard customers in a few AWS regions and the infrastructure is rock solid at this point. Most users are ingesting 10k+ events/s and their analytics frontends are retrieving results in well under 100ms. We've gotten it to the point where it "just works" which has made Stride users' lives a lot easier at that scale.

And since the hard parts of Stride are powered by PipelineDB, an added benefit for us is that we now get a ton of super detailed instrumentation data about PipelineDB performance and behavior, which has helped make the open-source product quite a bit better.

We'll be moving Stride into self-service/GA next year--stay tuned!

</comment></comment><comment><USER27> Big question for me: does it work on Heroku postgres?

<comment><AUTHOR> No, not currently; however, we offer hosted deployments of PipelineDB as well as a SaaS product called Stride (stride.io), which is based on PipelineDB.</comment></comment>


Erlang or Java (Reactor) - <AUTHOR> Hello,
I want to select a stack for a new highly concurrent service (hundreds or thousands of updates per second).
Do you think that Erlang or Java reactive stack (Reactor) will be a good fit? Which would you prefer?
Thanks. <comment><USER2> The answer will probably depend from person to person. In the end choose whichever _you (and your team)_ feels more comfortable with.

<comment><AUTHOR> Thanks for your answer!

</comment></comment><comment><USER3> erlang is more fun, and is was designed for what your discussing, but you'll want to learn both the language and OTP

<comment><AUTHOR> And what do you think about the learning curve?

<comment><USER4> Depends, but I personally think its comparable to the learning curve of Java, in fact, I found it easier to learn about than Java. I would immediately recommend reading Joe Armstrong's thesis, which goes into the design process of the language and the OTP [https://erlang.org/download/armstrong_thesis_2003.pdf](https://erlang.org/download/armstrong_thesis_2003.pdf)

In fact, I would recommend reading that even if you didn't want to use Erlang, its just a good and interesting read, which offers some cool insights into concurrency, distributed systems, and message passing.

<comment><AUTHOR> I will read the Armstrong's thesis! Thanks.

</comment></comment></comment></comment><comment><USER5> Use what you know.</comment>


Privacy Shield Is Void: Time to Re-Prioritize Multi-Cloud Kubernetes? - <AUTHOR> https://elastisys.com/privacy-shield-kubernetes/ <comment><AUTHOR> As of this summer, the option to use the Privacy Shield data transfer agreement for EU citizens' personal data transfers is gone, which more than 5000 companies have been leaning on.

Kubernetes and the cloud native software stack can help companies with a global user base by providing a cloud agnostic approach to where their applications are hosted.

In this post we argue for how companies with a global user base can skip worrying about the lack of Privacy Shield or similar future data transfer agreements by having a software infrastructure that they can use in Europe, US or in their own data centers depending the need.

What's your take, do you think multi-cloud K8s will see a rise in popularity?</comment>


Ask HN: Port my number to Twillio or GV? - <AUTHOR>

GV has that weird 50sms limit, and it looks like you need to register a new carrier number to get it working, based on their porting faq.
Twillio looks perfect.. I could forward twillio to GV and get calls in my e-mail. <comment><AUTHOR> If you have experience with this, or a reason not to, please comment.</comment>


The Software Behind the Mars Phoenix Lander - <AUTHOR> http://news.oreilly.com/2008/07/the-software-behind-the-mars-p.html <comment><USER2> Summary: C code developed with the waterfall methodology, running under VxWorks, all on a 33Mhz PowerPC board. Someone who works in embedded software could clarify this for me, but isn't that a fairly standard setup? Whatever gets the job done, right?

For what I've heard about NASA using Lisp and Forth for some of its software, especially when they had to remotely debug and update the spacecraft, this was a little disappointing.

<comment><USER3> Ron Garret details some of the Lisp NASA development. The basic thing was, it was used as an experiment on a deep space test probe (I think) but they switched to C++ because of orders from on high.

[http://web.archive.org/web/20070228160104/http://ase.arc.nas...](http://web.archive.org/web/20070228160104/http://ase.arc.nasa.gov/publications/pdf/2000-0176.pdf)

</comment></comment><comment><USER4> VxWorks: For when it can't crash...ever. Some of the most entertaining and enlightening projects I have ever worked on were centered around VxWorks.

Interesting interview. I liked the bit at the end about not allowing dynamically allocated memory!

<comment><USER5> _Regarding crashing_ :

      Am I right in assuming that there's very little process separation in the older RAD 6000 boards?

      There is no process separation. I mean basically what we —

      One bad pointer in one module and —

      Exactly.  —

      you wait for the next update window.

      Exactly.

      Wow. I could write software like that.

      [Laughs] Well —

      I won't give you a 90 percent certainty though.

      We have strict coding guidelines that we use. We don't allow dynamic memory allocation, for example.

</comment></comment><comment><USER5> The transcript is not complete. It leaves out a Java garbage collection discussion and why the presence of water on Mars is of tremendous importance, for example.</comment>


How our housing choices make adult friendships more difficult - <AUTHOR> http://www.vox.com/2015/10/28/9622920/housing-adult-friendship <comment><USER3> This feels like a distinctly American problem to me. It's hard to have serendipitous interactions in public spaces if you're sitting in car at the time. I've lived in several large American and European cities and I wouldn't willingly go back to a car-centric lifestyle. So many of the plaintive questions in this article ("when was the last time you had a meaningful interaction with someone in a public space?") ring hollow to me; that sort of spontaneous running into friends is the norm when you walk instead of drive.

<comment><AUTHOR> Unfortunately, wealthy citizens in other countries mistakenly aspire to this American/Canadian model of suburban residential development, hence the increasing popularity of suburban residential fabric in India, China etc.

That being said, here in Toronto, there's been a wave of newer developments[1] in these very the outer suburbs that are based, somewhat, on principles of compact, urban patterns. It's not quite urban, because of course they still have to deal with the existing building regulations and zoning codes in the suburbs that essentially make it illegal to build anything but sprawl - <USER2> it's something to keep an eye on.

[1] [http://www.thestar.com/news/gta/2011/01/14/paradise_saved_gt...](http://www.thestar.com/news/gta/2011/01/14/paradise_saved_gta_growth_plans_aim_to_rein_in_sprawl.html)</comment></comment>