Announcing TypeScript 2.0 Beta - <AUTHOR> https://blogs.msdn.microsoft.com/typescript/2016/07/11/announcing-typescript-2-0-beta <comment><USER2>
        let lowerCased = strs!.map(s => s.toLowerCase());

I'm not a big fan of this, it's really starting to change JS semantics. It's not just type annotations anymore + ES6 . It's starting to look like its own language. Some might like that, I do not.

They should be a bit more cautious before introducing these features. What if Ecmascript in the future uses ! as an operator for a totally unrelated purpose ? It's like decorators, they are not in the spec, there is no plan yet to officially had them to the spec, yet, Angular2 which is written in Typescript abuse them. What if in 2 years they are introduced in ES2019 with different semantics ? How Typescript is going to handle that too ?

<comment><USER3> Do you have the same complaints about optional parameters too?

        let x = (id: number, name?: string) => { return; };

Is it abuse to use interfaces as well? They are not present in vanilla JS.

How about React's move away from React.createClass({}) to ES6 classes extending React.Component? Do they abuse classes?

Async/await is coming too and it will turn JS on its head, does eschewing callbacks for async functions also count as abuse?

I won't even get into generics as that's a whole different can of worms.

Microsoft and the TS team have issued a mandate that TypeScript will always be a superset of EcmaScript and if ES2019 includes decorators that are incompatible with TypeScript's then it will be addressed at that time.

TypeScript was never meant to be just type annotations+ES6, there is Flow[1] for that.

[1] [https://flowtype.org/](https://flowtype.org/)

<comment><USER2> > let x = (id: number, name?: string) => { return; };

hmm, it would make more sense if it was written like that

> let x = (id: number, name: string?) => { return; };

But I guess it's more or less ok. But I definitely feel inconfortable with the ! .

> How about React's move away from React.createClass({}) to ES6 classes > extending React.Component? Do they abuse classes?

I don't use React.

> Async/await is coming too and it will turn JS on its head, does eschewing > callbacks for async functions also count as abuse?

The probability is higher for ES to implement async/await than the ! operator. The former is a safe bet, the latter isn't, by a long shot.

> Microsoft and the TS team have issued a mandate that TypeScript will always > be a superset of EcmaScript and if ES2019 includes decorators that are > incompatible with TypeScript's then it will be addressed at that time.

It means that language will break. Not very good if you write large TS codebases today.

> TypeScript was never meant to be just type annotations+ES6, there is Flow[1] > for that.

That's your opinion. I'm not interested in Flow.

Ultimately TS is successful because it more or less looks like Action Script 3/ES4/JScript.net and javascript itself. Make it too Alien and the people who refused to use Coffee script because of its semantics will not want to use TS. And FYI I use TS today. I may reconsider that.

<comment><USER4> > I'm not interested in Flow.

Curious: Why not?

<comment><USER5> I'm not him, but the Flow compiler not supporting Windows is a dealbreaker for some.

<comment><USER4> Thanks. The Flow team is planning to announce official Windows support, hopefully in the next few weeks.

</comment></comment></comment></comment></comment></comment><comment><USER6> Another interesting addition is discriminated union types: [https://github.com/Microsoft/TypeScript/pull/9163](https://github.com/Microsoft/TypeScript/pull/9163)

This will greatly facilitate a more functional style of programming.

<comment><USER7> Union types without destructuring/pattern matching seems really strange, doesn't it? Special casing a certain property name and converting types based on a string comparison?

<comment><USER8> It's definitely not as elegant as Scala or Haskell, but I think their justification is very reasonable. The current implementation is maximally compatible with existing usages of tagged unions (e.g. Redux actions), because it allows you to choose whatever discriminant you like ('type', 'kind', whatever). Keeping very close to JS seems to be a core tenet of TypeScript and is quite valuable in my opinion. It means they can adopt new ECMAScript syntax without clashes and also ensures that newbies have a smaller learning curve. Also, they can always add in some syntactic sugar later if they want to!

<comment><USER9> Yeah, the key here is JS-compatibility. Unfortunately, that _does_ mean that TypeScript is sort of a dead end in terms of how far you can go wrt. the fabulousness of your code. (Of course, once everything is statically typed you'll have a much easier time just converting everything to $OTHER_STATICALLY_TYPED_FRONTEND_LANGUAGE, perhaps Scala.js, perhaps PureScript, perhaps js_of_ocaml, perhaps even GHCJS if you're adventurous.

(Aside: I'm moderately disappointed the 'fabulousness' was not in my Chromium's spell checker dictionary. It is now.)

<comment><USER10> If by «fabulousness» you mean in terms of static typing, the language may not meet your expectations, but it seems to me it's a bit harsh to say it's a dead-end, considering it's on par with many other languages, and still improving.

Also, sorry if you meant something else, «fabulousness» is a very subjective term, not unlike «elegant» (as in «elegant code»), and because it does not have a specific and commonly shared meaning (what is fabulous to you may not by fabulous to others), it's not something I'm very comfortable discussing, although I think I have understood what you meant by it, but with a low level of certainty.

</comment></comment></comment></comment></comment><comment><USER11> > In TypeScript 2.0, the new --strictNullChecks flag changes that. string just > means string and number means number.

This is great. However, it would be nice to know if this feature will become opt-out in the future instead of opt-in. In theory, if you're a TS user (as opposed to JS) it's because you want these nice features _by default_.

<comment><USER12> It's a tough call, and I can see arguments for both sides. On the other side, one of the big selling points of TypeScript is that you can take your existing huge JavaScript codebase, and with little effort turn it into TypeScript with all the types being "any", then gradually add strong types as time permits. This wouldn't work if --strictNullChecks was the default and would add one more step to the migration process.

<comment><USER13> `null` and `undefined` are subtypes of `any`, so you can still gradually convert to typescript.

(according to [https://github.com/Microsoft/TypeScript/pull/7140](https://github.com/Microsoft/TypeScript/pull/7140))

</comment></comment></comment><comment><USER14> > In 2.0, we've started using control flow analysis to better understand what > a type has to be at a given location.

Sounds like Flow. Curious to see how they converge/diverge over time.

I know there are people who hate the tooling spaghetti that modern JS development involves, but I appreciate that I can plug Flow into a babel/webpack stack and have it just do the error checking. I also have high hopes for things like tree shaking and its ilk that control flow analyzers (Flow, and now TypeScript) will bring to JS going forward.

I'm sure you could have Babel just do the experimental transforms and pipe the result into TypeScript, but having two separate sugar/transformation systems seems not-great.

<comment><USER15> > I also have high hopes for things like tree shaking

They're really starting to put their efforts behind control flow analysis. They already did a little bit of that before (with type guards), but it seems they're really serious about it now. 2.0 also adds verification for unused declarations with `--noUnusedLocals` and `--noUnusedParameters`, so I want to believe they're moving towards tree shaking.

</comment></comment><comment><USER16> There are a _lot_ more features than non-nullable types: [https://github.com/Microsoft/TypeScript/wiki/What%27s-new- in...](https://github.com/Microsoft/TypeScript/wiki/What%27s-new-in- TypeScript)

</comment><comment><USER17> "Non-nullable Types"

This is the first filter I check when I am deciding to learn a programming language these days. Almost all real world code I saw have had random null checks everywhere.

<comment><USER18> It's one thing I don't like as much in JS, are those times where a number is a valid input, or a string that is a number, but not null, undefined or other types of values.

</comment></comment><comment><USER19> This is fantastic. Kind of gutted they delayed Async/Await until Typescript 2.1 releases.

That's the one killer feature I'm missing.

Typescript has been nothing short but amazing though!

<comment><USER5> In the meantime you can use async with TypeScripts ES6 emitter, which transforms async into generators, then run the output through Babel to transform the generators into plain old ES3/ES5. It's messy but it works.

<comment><USER20> How hard is it to automate this and what impact on build times does it have?

<comment><USER21> It's not hard to automate with raw gulp or webpack, but it does add a significant amount of time to compilation. It roughly doubled our incremental compile times. My team decided it wasn't worth it, but it's possible that a cleverer person could decrease the overhead.

<comment><USER20> I ask because I'm debating between trialing TypeScript or Elm for a personal project (I primarily work in Rust and Go on the backend/infrastructure), and iteration times are important when trying to get a frontend UI "just right".

<comment><USER5> You could just use TypeScripts ES6 output directly during development, using a browser that supports ES6 natively, then add Babel to the build chain for public builds that need to work on older browsers.

<comment><USER20> Do I generally need to use prerelease browsers for ES6 support? Sorry, it's been a long time since I've been on the frontend.

<comment><USER5> The stable versions of Chrome, Firefox and Edge all support ES6 generators. Safari stable doesn't support them yet but the tech preview does.

[https://kangax.github.io/compat-table/es6/](https://kangax.github.io/compat- table/es6/)

</comment></comment></comment></comment></comment></comment></comment></comment><comment><USER22> The control-flow analysis of types is very clever.

I've been slowly switching away from Coffeescript to Typescript and have been mostly happy with it.

Only thing I still struggle with is grappling the namespace/modules mess in Javascript that's been inherited by Typescript.

<comment><USER23> Is it inherited from JS though? I was under the impression that Typescript was doing their own thing (like /// <reference)

<comment><USER24> TypeScript picked up a few features that were ultimately removed from JS at the draft spec stage, AFAIK the xml style references were never in a JS spec, but the convention has been around a while. TS also supports import etc.

<comment><USER23> The thing that bugs me the most is the inconsistent implementation of default imports with ES6. Makes it hard to work with a lot of libraries.

</comment></comment></comment></comment><comment><USER25> > This release includes plenty of new features, such as our new workflow for > getting .d.ts files[0]

Does this mean that using Typings is no longer necessary, or is there some additional benefits that Typings still offers?

0\. [https://blogs.msdn.microsoft.com/typescript/2016/06/15/the-f...](https://blogs.msdn.microsoft.com/typescript/2016/06/15/the- future-of-declaration-files/)

<comment><USER26> Also, for me it's still unclear how versioning is handled. It always seems like you have to use the latest version of the .d.ts and hope it works with your actual package version.

<comment><AUTHOR> `.d.ts` packages should align on major.minor version numbers, so you'll be able to snap to a version and update appropriately.

</comment></comment></comment><comment><USER27> So how are you guys building TS for web apps? I've been using VS Code, putting classes into namespaces and it builds with commonJS, which I concatenate into a single file that I load into a website.

That last part is in need of change because you're not supposed to concatenate commonJS. So how have you been delivering your code to the browser?

<comment><USER28> We're experimenting with using TypeScript 2.0 for compilation, and webpack 2 for bundling. You can configure TypeScript 2.0 to compile most TS/ES6 syntax to ES5, but to leave the module statements (e.g. import and exports) as ES6.

Webpack can then analyse your ES6 module tree and perform "tree shaking", a form of dead code elimination where unused modules are excluded from the compiled bundle. This will become increasingly useful as more libraries are authored in ES6 / TypeScript, as it will allow you to import the whole of a framework like Angular or React, but only ship the parts of it that you actually use in your application.

<comment><USER28> And I wanted to add that, while webpack can appear a little intimidating at first, it's actually very easy to setup, and in many ways much simpler than the kind of jerry-rigged concatenation and minification workflows we used to build with Gulp and Grunt.

</comment></comment></comment><comment><USER29> Never make _clever_ use of undefined in JavaScript, as it will always result in a bug when someone decided to be a good citizen and gives the variable a value at the same time it's declared.

Always be explicit, like var foo=-1; if(foo!=-1) instead of only var foo; if(foo). It will also help the optimizer

</comment><comment><USER30> > null and undefined are two of the most common sources of bugs in JavaScript. > Before TypeScript 2.0, null and undefined were in the domain of every type.

So true. Happy to see this. Makes me think of how Rust works.

</comment><comment><USER31> Id love too see partial classes.. It would be so helpful combined with generated classes. Do anyone know any alternative to partial classes with the same functionality as partials in C#?

<comment><USER32> Check out this:

[http://justinfagnani.com/2015/12/21/real-mixins-with- javascr...](http://justinfagnani.com/2015/12/21/real-mixins-with-javascript- classes/)

Might provide you with some functionality you're looking for. Since TypeScript is an es6 superset, I'm assuming this will work in that context.

</comment></comment><comment><USER33> Explain please, why anybody would want both null AND undefined?

<comment><USER34> Similar to why you would want to have both false and 0; it is possible to have a situation in which you wish to define something as explicitly being null.

I do think it's a little weird, but it's useful to be able to say that "this key exists and its value is null" as opposed to "there is no such key".

<comment><USER35> I thought about that too, but this breaks down once you realize that setting obj.key = undefined; will mutate an object into something which is neither "the key exists and its value is null" nor "there is no such key". The difference can e.g. bite you in things that iterate over the keys of an object or function that do that internally (like deepEquals implementations).

I guess in TS2 there would now also be a difference between a field defined as key: string | null | undefined and a field defined as key?: string | null | undefined, because the first one requires setting the key to one of the values on initialization and the other one not.</comment></comment></comment>


Upwork makes a bold and desperate play as competitors descend on low end market - <AUTHOR> http://thomason.io/upwork-makes-bold-and-desperate-play-as-hordes-of-competitors-descend/ <comment><USER2> Upwork's bureaucracy is mind boggling. I hired few people on Upwork and paid them to do some work. No one complained about anything but Upwork flagged me for fraud and demanded plethora of paperwork.

I eventually ditched Upwork and the people worked with me eventually bypassed Upwork and eventually became full time employees.

<comment><USER3> Yeah one corporate client of mine has paid oDesk's[1] $3000 "disintermediation fee" just so that we could switch to working directly on their standard vendor contract with wire transfers and invoices.

[1] before oDesk and Elance merged into Upwork</comment></comment>


Ask HN: Create custom, personal Hacker News email digests - <AUTHOR> I've had this idea swirling in my head for a while that there should be a service that allows you to setup custom filters of Hacker News submissions and then receive a digest of them either daily or weekly. You could make something similar to a where clause (i.e. `title contains "javascript" or text contains "javascript"`). This would define the list of links you would receive.<p>Is this something you guys might find useful? I'm thinking of throwing something together as a weekend hack project. <comment><USER2> I like the serendipity of Hacker News, so I don't want to filter out or in specific topics. But if you filter for quality, I love that. Using machine learning to pick out the "best" items was the subject of a discussion recently:

[http://pyvideo.org/video/2612/enough-machine-learning-to- mak...](http://pyvideo.org/video/2612/enough-machine-learning-to-make-hacker- news-reada)

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

The author is nice enough to keep that app going here:

[http://hn.njl.us/](http://hn.njl.us/)

It is an opinionated filter, but with ADD I can get caught reading most things on the front page. This guides me to some important links that don't initially seem all that interesting.

I asked the author if he would share his training set, or open source the app, but apparently not. If you can turn that web app into an RSS feed or a digest, that would help.

As for your idea to filter on keywords, you can get that working as an RSS feed using Yahoo Pipes without writing any code.

<comment><AUTHOR> Interesting. I had not seen that discussion. I'll take a look.

</comment></comment><comment><USER3> I also like the mix of stories and subject in HN, but when one subject saturate the front page I use hnapp to filter the other stories. For example you can subscribe to the rss of [http://hnapp.com/?q=javascript%20type%3Astory%20score%3E1](http://hnapp.com/?q=javascript%20type%3Astory%20score%3E1)

</comment><comment><USER4> This would be useful, particularly in a use-case where I'm interested in a niche topic that I wouldn't like to miss anything in.

A filter, like 'hit the front page', 'in ask', 'above XX points', 'above XX comments' would also be useful as a simple, well, filter.

</comment><comment><USER5> I personally prefer RSS over email, so I've built [https://github.com/raquo/hnapp](https://github.com/raquo/hnapp) for the task. Just thought you might want some code to get started.

<comment><AUTHOR> That's almost what I had in my head. That's a cool little utility. You did a lot of hard work already :P</comment></comment>


The advantages of free software - <AUTHOR> http://www.gnu.org/philosophy/practical.html

<comment><USER2> tell that to the guy that made from thesis (wordpress templates).</comment>


Review my first webapp - <AUTHOR> http://tweetinawhile.com

<comment><USER2> What time zone does it post in?

<comment><AUTHOR> The timezone you are using this. More specifically the timezone set for your browser. If you observe the URL, you will see an offset field which is the GMT offset of your timezone in minutes.

<comment><USER2> I'd suggest something a bit more clearly noted on the screen, perhaps next to the time itself.

<comment><AUTHOR> Thanks for the suggestion. I've updated that in the right hand column but yes mentioning it near the time seems a better idea.</comment></comment></comment></comment>


Is there away to display target URL of RSS headers on the RSS feed reader? - <AUTHOR> My pet peeve is clicking on a URL which takes me NY Times, WSJ or Atlantic like websites, without being able to know, where I am going to land at. Is there a way to configure the RSS feed to show the target site, say on feedly for instance ? <comment><USER2> In Feedly you can just hover the feed's title - it shows the page URL like for any link. Works only on desktop, though.</comment>


Why Are Vendors Annoyed by this IAP Thing? - <AUTHOR> http://quatermain.tumblr.com/post/3345687143/why-are-vendors-annoyed-by-this-iap-thing <comment><USER2> Apple obviously doesn't look at the AppStore as a MarketPlace. They view it purely as a convenience value add for the IOs. Every move they make indicates that they don't mind people filling holes in their product offerings just so long as they aren't attempting to fill that hole themselves.

If you base your business on the iOS platform then you only have a business for as long as Apple doesn't want that business for itself.

</comment><comment><USER3> whats the deal with all the dashes in the content? made it nigh unreadable.

<comment><USER4> Are you using chrome?

It could be this bug: <http://code.google.com/p/chromium/issues/detail?id=65941>

<comment><USER5> It works fine on Chrome 9 for Mac.</comment></comment></comment>


Google moves toward quantum supremacy with 72-qubit computer - <AUTHOR> https://www.sciencenews.org/article/google-moves-toward-quantum-supremacy-72-qubit-computer <comment><USER2> "Quantum supremacy" is the goal (still unachieved) of demonstrating a clear speedup over classical computation by computing something faster than our best classical computers can.

I recall a number of quantum demonstrations (though usually with the quantum annealing devices) have had legitimate questions about whether any quantum behavior was exhibited at all, because given how little was calculated it certainly _could_ have decohered and done the same calculation via classical means with the amount of time it took, or something. (I probably do not have the details right.)

</comment><comment><USER3> Great news.. They can now analyze and track our every move even more efficiently.

<comment><USER4> That would require a quantum-optimized algorithm for tracking our every move - such a thing may not even exist yet. Perhaps the likeliest application in that domain for quantum computers would be machine learning processes for guessing what our moves are going to be.</comment></comment>


App Clips for iOS - <AUTHOR> https://developer.apple.com/app-clips/ <comment><USER2> I'm excited for what this means for categories of apps that many users currently consider to be "junk" – restaurant ordering apps, parking apps, venue apps.

There are many of these, and we often don't want download these, or when we finally cave in and do download them the friction of notifications and eventual deletion is a pain.

With App Clips, and some of the features like "no install", 8 hours of push notifications and the ability to confirm a fixed location without location permissions, I think the UX is going to be significantly improved.

<comment><USER3> What incentive do parking and venue apps have to implement this? The audience is captive. They push the app because either they do not want to spend the engineering effort to make a usable website or they want to siphon data from their clients. In either case, they will not have an incentive to spend more engineering time to get less data from customers.

<comment><USER4> > What incentive do parking and venue apps have to implement this?

As a good example, a parking meter app is simply there to collect money at the meter. An App Clip is small, which will be way faster to download than the full app, and enable a user to pay much faster than before. In a situation where you want people to get an app but know that they're time constrained and that app is how you get paid, you'll implement it because it'll make sense to implement.

I've personally given up on bike and scooter rental apps because the time to download and setup was frustrating. For those cases, this would be awesome.

<comment><USER5> But as mentioned, the audience is captive. If there was another parking option around the corner they would have used that. I don't think parking lots care how long it takes you to download their app and pay.

<comment><USER6> Not really, there are often other options. Different lots nearby using different systems, for instance. Or the option of simply _not paying_ and risking getting towed / a ticket.

A parking lot clip could use the time-based notification to warn you that your meter is almost up and give you the option to re-up. Without having to walk back to the lot to do it. I imagine this would be especially useful in a tourist-heavy area since somebody who isn't sticking around won't want to download a whole app for the purpose.

<comment><USER7> I kinda doubt that parking lot management companies would be willing to pay Apple's 30% transaction fee though.

<comment><USER8> Apple's fees are on digital goods, not physical ones. Amazon doesn't pay a fee for me to place a physical order in the Amazon app, nor does the laundry app in my old apartment building.

<comment><USER7> I thought parking counts as a service, not physical goods, but then again I think I paid parking via app in the past, with external payment gateway, so you're probably right.

<comment><USER9> The in-app purchase system is the one which takes a fee, and is only sometimes required (and only _usable_) for services or digital goods consumed in the app itself.

Any real world good or service would fall onto Apple Pay, which makes its money through a micro fee on the card issuer, basically to use the phone as a convenient, highly fraud-resistant card.

</comment></comment></comment></comment></comment></comment></comment></comment></comment><comment><USER10> I'm not sure why this isn't highlighted more often, but I don't see this just as a take on making web apps less relevant for iOS users.

Rather what I see is a system to take on and take back control from the "app in app" WeChat ecosystem that has taken over so many parts of everyday life in China.

It seems to me that Apple is looking to replicate that success, and sees the potential for apps that users don't want to keep around permanently.

It is indeed sad that this may discourage companies further from building solid web apps, especially if Android counters this system with their own, but I think it'll mainly be interesting to see if and how it'll affect WeChat in China.

<comment><USER11> Android actually already has something similar: [https://developer.android.com/topic/google-play- instant](https://developer.android.com/topic/google-play-instant)

<comment><USER12> Only Google Android, neither my current nor my previous phone have had the option to use instant apps.

Maybe it's a region lock thing (I'm not in the US) but it's not globally available on all Play Services devices so I don't know what the point of putting effort into Instant Apps really is. It only makes sense to support all of Google Android or none of Google Android.

</comment></comment></comment><comment><USER13> I'm gonna be the web guy... have we given up on the web completely? Why not improve the signup/payments experience using Web APIs? Why not integrate safari more closely to what is required with these App Clips?

It seems the only real reason that Apple isn't doing this is because it wants people to build for their App Store so they have control and possible revenue stream.

From a dev perspective this feels like a lock-in: yet another platform to support

<comment><USER14> All the cynical comments about Apple's ecosystem motivation certainly apply, but there's one much more mundane reason: UX.

The best PWA still feels vastly worse than native versions (my reference is Twitter) and for Apple that's a huge factor, which I respect a lot.

<comment><USER15> I'd also add reducing friction. It seems the goal here is to reduce the amount of time it takes to get the user to the exact functionality they need in the shortest amount of time with a user experience that makes it feel seamless.

<comment><USER16> A QR code is exactly the same thing. If you wanna talk NFC... how many people do you think are gonna buy apple's proprietary NFC broadcaster? either way though apple could use the same API to call a public website instead of a private call to a handicapped app.

They're still downloading MBs of data. Not sure how big most websites are these days but I would surprised if most app clips don't go right up to that 10MB limit.

</comment></comment></comment></comment><comment><USER17> This will be really useful when the AR goggles launch. And for interesting AR or other fun (but ultimately throwaway) experiences before that.

There's so much cool stuff you can only do with an app but currently there's just too much friction. I hear someone say "No one downloads apps anymore" daily. Well, now they don't have to, and we can still make the fun thing we want to.

</comment><comment><USER18> The 10 MB limit is going to be very interesting, because it would instantly preclude the use of many SDKs that apps bundle these days "as a given". Unless there's a massive shift, things like Facebook login and analytics frameworks are just not going to work…maybe it'll cause developers to drop them from their full apps as well?

<comment><USER19> As a native Swift developer, I can live with this.

I used to spend a lot of time, optimizing 8-bit images (PNG8), but gave it up, some time ago.

This looks like I may want to revisit that exercise.

<comment><USER20> Perhaps that's why Xcode 12 supports SVGs now. Supposedly on iOS 13 they won't rasterized during build.

<comment><USER19> Yay!

I've heard that SVG has been supported for a while, but I have not used them (yet).

</comment></comment></comment></comment><comment><USER21> IMHO both this and the Android Instant Apps are half assed ideas.

The ultimate goal should be working towards having the ephemeral nature of web apps while maintaining the native app performance. That is, access to raw sensors, running native code rather than JS and working offline. I know it's technically challenging but that should be the direction.

<comment><USER18> > That is, access to raw sensors, running native code rather than JS and > working offline.

So, a native app?

<comment><USER14> GP wants web apps that feel native. I'm not sure that'll happen mid-term.

<comment><USER22> If you'd asked my 5 years ago I would have said the web would dominate. Now I'm not so sure (although I'm also currently working in mobile). It feels like by the time we get to something like webapps that feel native they may not really be webapps anymore, maybe something like what google is doing with Flutter or something WASM based that can run on anything.

</comment></comment></comment></comment><comment><USER23> I'm curious what Apple Pay and App Clips means for the ongoing browser wars and the web in general. The more and more Apple or Google create products that only work with _their_ hardware and _their_ browsers, where does that leave everyone else?

Imagine scenarios like:

\- Want to use Apple Pay on your laptop? You'll need Safari!

\- Want to redeem a reward off a QR code in a store with your friends? If you switch to Safari right now, no problem!

\- Want to pay your parking meter in a rush? Safari has you covered!

I'm aware of Google Play Instant, and I assume that App Clips will only accelerate the adoption of both technologies. But will they be adopted at the same rate, or with the same quality?

And where does that leave the users? The web was wonderful in that, as long as you can access a website, you can have a (hopefully/roughly) similar UX. Now it feels like that semblance of access is being eroded with more ecosystem lock-in.

Is it possible to open this up?

<comment><USER24> Reminds me of ActiveX in the late 90s/early 2000s...tons of web applications developed exclusively for Internet Explorer on Windows. As a Mac user in high school/college at the time, I occasionally had to use the shared computers in the school library just to use certain web apps that were built with ActiveX.

</comment></comment><comment><USER25> I thought App Clips were the most exciting part of iOS 14. I think there's a real opportunity to utilize this for some guerrilla marketing (I hear a lot of it will work through deeplinking). It seems like a lot of it will be purchase intent based, but I can also imagine once Yelp implements this, you can deeplink to a 5 star rating. A Soundcloud rapper can now have folks scan into their new song and get a preview.

Let these companies build the integrations and find creative use cases around them!

<comment><USER24> Given how often I encounter very broken deeplinks on iOS, this doesn't make me especially optimistic if there will now be another layer to it...I regularly click links on my iPhone that dump me into the app store despite already having the app installed, or that will open the app for a brief moment, only to switch me back into Safari, or banners on products/posts/pages that prompt me to "View in App" that just don't actually work properly.

I haven't personally worked on an app with deeplinks in a few years, so I'm not sure what's going on, but it seems to be a widespread issue.

</comment></comment><comment><USER26> > Instead of asking for credit card information, you can take payments using > Apple Pay.

But can I ask for credit card information and not use "Apple Pay". The "instead" is super weird there.

Also, why not just PWA ?

<comment><USER27> _But can I ask for credit card information and not use "Apple Pay". The "instead" is super weird there._

"Apple Pay" doesn't mean Apple Card. You can have a bunch of different credit cards loaded into Apple Pay.

 _Also, why not just PWA ?_

I hope companies go with this instead of PWA for the simple reason of bloat. Apple's payload restriction on App Clips is something like 10MB. Most PWA's blow that cap loading the page header and footer.

<comment><USER28> It's not like something won't allow those App Clips to download 100 MB after launch.

<comment><USER29> They are limited to 10 megs of storage space. Unless you download the real app they can't do that.

</comment></comment></comment></comment><comment><USER30> Ah. The good old times when you tried to squeeze your game into 10mb, optimize the hell out of it, so it was downloadable over cellular. These days apps are humongous without good reason

</comment><comment><USER31> So for Apple it's OK that you download a temporary app from a website but they refuse to give PWAs access to essential features such as push notifications.

<comment><USER32> Yes. And that is okay for the vast majority of consumers as well.

Are there compelling PWAs on other platforms that are killer apps? Somehow Apple always gets called out here (despite being one of the first to support PWAs and to enable advanced functionality), yet the average Android user I suspect has approximately zero PWAs installed. The average Windows user - Zero. The average Linux user - Zero.

Make some killer PWAs that people cry for and the user base will demand it. But as is it seems to be mostly dreaming and imagination that Apple is the boogieman.

<comment><USER31> HEY could have been a PWA. The UI is just web after all.

Edit:

Also, an argument could be made that because Apple doesn't really want PWAs on iOS nobody is investing in make a good one for mobile.

</comment></comment></comment><comment><USER33> If App Clips launch instantly enough, this could be the beginning of a sort of "parallel Web" that delivers native applications instead of HTML. Which, of course, has both benefits and drawbacks. But it's an interesting idea.

</comment><comment><USER34> What are people's thoughts on this compared to Google Play Instant? It seems quite similar to me on first glance, but the special QR codes seem like a good idea for making them more appealing to advertise/try.

<comment><USER35> It's Google so they won't acknowledge that Google did it first. Will post comments on how they use Firefox and DDG.

<comment><USER36> Does it matter who did it first? Why would Apple mention or acknowledge this in developer documentation or, really anywhere else?

It's not like it's a big secret they are trying to hold or a fraud they are perpetuating. Why is there anything wrong with not advertising it?

<comment><USER35> I am talking about people on HN and not Apple.

<comment><USER36> Ah, well, you were responding to a post that acknowledges Google Instant Play, so maybe not a great spot to claim HN people won't acknowledge Instant Play.

<comment><USER35> Just look at the other comments.

<comment><USER36> There are a bunch of comments talking about Google Instant Play, and none denying it came first that I can see.

</comment></comment></comment></comment></comment></comment></comment><comment><USER37> One overlooked feature of this feature is the Sign in with Apple. You can use the App Clip to make a purchase and at the same time you give the vendor an anonymous email address which they can use to contact you with more information about their service. If you don't want any information, you can cancel that anonymous address.

I don't see how this can be done in a web app.

<comment><USER38> There is Sign in with Apple on the web, too.

</comment></comment><comment><USER39> Aside: when did Apple start putting out polished PR pages like this to "market" features to developers? I feel like this year is the first time I'm seeing them.

There definitely wasn't anything like this push for when Core Data or Ubiquity came along, even though they both would have greatly benefited from it. The only pages for individual features I recall pure consumer-focused "explainers" of the benefits+implications of things like Gatekeeper, iCloud, or Time Machine.

Is this just because this year's WWDC is online? Were they doing this sort of "hey, pay attention, this exists now, you should try building with it" PR in person before?

<comment><USER40> Apple probably knows that developers aren't the ones making the decisions on whether to implement app clips or not, product managers or the developers clients are.

</comment></comment><comment><USER41> This was probably the only part of the WWDC keynote that left a sour taste in my mouth.

It's the opposite of what I want.

On the other hand, for the companies that _insist_ on apps, I guess it's an improvement. Kind of.

</comment><comment><USER42> So what google have done for the web with AMP, apple is doing to apps with clips?

I feel like this could be achieved with better HTML5 support from the iPhone and the promotion of light PWA instead.

<comment><USER43> Every time I read these comments I realize that apple is going to dominate again. A PWA is not vetted! If you complain about a PWA apple cannot take it down!

In your PWA / QR code utopia, after someone sticks a few bogus QR codes on parking meters, scooters and bike rentals etc that point to their phising PWA - trust is going to be toast.

Seriously - chrome getting rid of subdomains used to trick users (wellsfargo.securedomain.com) in the browser bar also generated lots of complaints - and also helps users.

Is this just a HN thing? Screw the 1B users who can't be bothered to become experts on every weird scam / original headers review etc? Because it get's a bit tiring on literally every thing that google / apple do.

<comment><USER44> > If you complain about a PWA apple cannot take it down!

Browsers already protect people against malicious sites.

You never saw Chrome warn you about it?

<comment><USER43> I don't think you realize how easy it is to setup a new website. The apple store doesn't have a lot of friction to sign up as a developer and get an app approved, but it has some. Websites are far far easier / quicker etc, and despite browser warnings phishing attacks continue to be very successful. This includes lots of creative options such as windows.net domains using azure cloud compute, cloudfront and CDN domains to host, content coming from places like dropbox, google sites etc.

We actually already know browser warnings are not enough because there continue to be incredible attack volumes in this area with malicious websites as landing pages.

</comment></comment></comment></comment><comment><USER45> ClickJacking target?

I would have expected the App Clip UI to have better integration with OS or Safari browser chrome, so that it wouldn't be possible to spoof from a web page.

Since it floats entirely within content, it seems like you could make a click jacking attack from a Safari experience.

Just one screenshot, maybe this is mitigated somehow...

<comment><USER46> The app clips still have to go through app review and the user is asked for consent before it is downloaded and launched. You also have to create them as part of a full app in the App Store (although for the restaurant ordering scenario, GrubHub or whoever would make an app clip for the small restaurant that didn't have a presence on the App Store).

<comment><USER45> Right. This would be simulating an app clip via HTML5 to trick a user into thinking they are using a safe app clip, but actually it is just a web page.

</comment></comment></comment><comment><USER47> So is this exactly like Google Play Instant Apps?

[https://developer.android.com/topic/google-play- instant](https://developer.android.com/topic/google-play-instant)

<comment><USER48> Have you seen it being used in the wild already?

<comment><USER49> Instant Apps have been around 4 years now (just a guess) and I've only encountered them twice. When going to a Vimeo link or a CBC link.

</comment></comment></comment><comment><USER50> It looks like this is a new way to get remote code execution on a locked iPhone:

> NFC Tags: Users can tap their iPhone on NFC tags that you place at specific > locations to launch an app clip, even from the lock screen.

I assume you would have to still get your app through the App Store review, but once you get past that you "just" need a sandbox escape or a privilege escalation bug to own the device. I suspect this feature will be taken advantage of by forensics software.

</comment><comment><USER14> Yes, Android has had it for years.

The difference is that Apple will actually ship it, it will work and provide benefit.

</comment><comment><USER51> Sorry, I didn't follow the launch. Does anyone know whether App Clips can consume/produce audio? I'm working on a musical app -- is there a way for us to "demo" our app in App Clip format, considering that it uses the mic + speaker? Thanks!

<comment><USER52> Supposedly App Clips can use every framework available to a normal app, except for HealthKit, which they explicitly prohibited. They did mention that App Clips can activate the camera, so I'd guess you can at least ask for microphone permissions.

<comment><USER51> That's very encouraging, thank you!

</comment></comment></comment><comment><USER53> I really think this is revolutionary. With Sign-In with Apple and Apple Pay, it's going to make real world digital commerce much more streamlined with Apple mediating as a guarantor for both sides. Like WeChat but unlike WeChat because privacy is respected.

</comment><comment><USER54> Looks like this could give Apple a bit of a head start with fleshing out some of their AR app offerings out in the real world. I imagine these will translate quite nicely into rOS / StarBoard, which gives Apple a slew of apps to use on day one.

</comment><comment><USER55> May be I am old. Even though this is so different, I have the same feeling of sidekick in the DOS world ... do not know why.

</comment><comment><USER56> I am actually excited to see this in the wild.

I wonder how well it would work when cell reception is very bad (indoors or 3G)

</comment><comment><USER57> Apple has a patent on context sensitive app installs/appearances. Come acrosa it some years ago.

</comment><comment><USER58> We have been using these micro-apps in China since almost four years ago...

</comment><comment><USER59> I wonder how much of a potential there is for abuse with this system, one thing I thought of during the keynote was:

1\. Someone sticks a malicious NFC tag on one of those rental scooters that opens a malicious App Clip

2\. The App Clip _seems_ like it could be for the rental service

3\. App Clip maliciously takes your money and runs.

Wonder how much something like that could become a problem or if Apple would be good enough about preventing/stopping it.

<comment><USER60> The defense here is presumably the same as against a "Starbux" app that faked orders to Starbucks and kept the money: it would either not make it past App Review and into the store or as soon as someone was scammed and complained, it would be taken down.</comment></comment>


Does Your Team Hold Retrospectives? - <AUTHOR> Wondering how many teams out there hold retrospectives or if you find them helpful/not helpful? <comment><USER2> We hold retros and they are helpful to analyze the previous sprint. The main issue is that changes need to be enforced or they are useless and just become a time to complain, not improve.

<comment><AUTHOR> Thanks for the comment! This is exactly what I've seen. How do you enforce that changes are made?

</comment></comment><comment><USER3> I believe in the "introspective retrospective". The introspective portion is a key to getting change to happen. The rules in my retrospectives are:

1) You may put anything up on the board that you want as long as it doesn't break any of the other rules.

2) Anything said during retrospective will not be used against, or brought up during, a performance evaluation.

3) Anything you add to the board must in some way involve you.

4) You may not complain about other teams inside/outside of the organization.

To break these down a bit. First, we can write anything (that doesn't break other rules). In a sad column I might put "I didn't update Jira well, I felt I wasn't really getting any value out of it." "I was stuck on some code and decided not to test drive my solution, then I didn't go back and add tests." In the happy column I might put "John reached out to the SA group and I was inspired by his attitude in doing so." "Our team accomplished task 123 in half the time we thought because we pulled together on the algorithmic portion." When I first started conducting retrospectives people were hesitant to put down things THEY were doing wrong and needed to improve on. They just complained. Getting them to open up was important.

This leads to rule number 2. People need to feel safe to say things that they need to improve without being penalized. Frankly, why would we penalize people for trying to improve? Yet the psychology of the situation often makes us believe we will be in trouble for honesty. This is why the rule was added. When people realize and become comfortable with it, they open up well.

Third and fourth rules go together. You must be introspective: "What can I do better?" "What did I do well?". Too often retrospectives degrade into complaining sessions and nothing is our fault. Enforcing the rule that we must never complain about another team and we must talk about ourselves removes this nicely.

The psychology of the whole thing is quite interesting. Let's imagine you add the following to the sad column of the board: "I was stuck on some code and decided not to test drive my solution, then I didn't go back and add tests." The hope is that there would be some great discussion about this, "Why didn't you get back to the testing? Well I didn't have time because of these other requirements. Oh, next time let me know and I'll help you write the tests, or take the tasks." That is all good discussion (and it could go 100 different ways). But the other part is, do you really want to put that up multiple weeks in a row and admit to your coworkers that you aren't testing if that is the cultural norm? Heck no! So you do better. Often, you are your own judge and advocate.

A few final thoughts. When starting retrospectives with a team for the first time I will often put up the worst things about myself. I want people to feel comfortable adding things about themselves. It helps. I hold retrospectives once a week not at the end of sprints (unless a sprint is a week, which I am also a huge advocate of). I hold retrospectives in the morning and never on a Monday or a Friday. It is always at the same time and on the same day. My teams are usually relatively small (another thing I highly suggest). Never over 8 people, and often 4.

<comment><AUTHOR> Thank you for the thoughtful write-up. Lots of actionable items here, I'm a huge fan of #4. I'm working on an app for retros, signalshq.com, and already see 2 or 3 points from this that I can build into the app.

<comment><USER3> I'll definitely check it out! Sounds like fun.</comment></comment></comment>


Ask HN: Living as a hacker in the bay area. - <AUTHOR>

I will be moving to the bay area once I graduate in a few months. One of the big plus points for me to move to the bay area will be to try to interact and learn from a bunch of smart people by going to hacker dojos, user group meets and conferences (mainly in machine learning and other data related things). My day job will involve some travel (within the bay area) so I probably have to get a car. Keeping this in mind, can people comment on some good places where I should live, how much I can expect to pay each month in food, rent, utilities, insurance etc (I want to keep irrelevant expenses as low as possible just because I want to save some $$$ for a rainy day), things I should sign up for to get to know about hacker like events (apart from read HN)?<p>Thanks! <comment><USER2> Rent has gone up significantly in the past year or two. Especially in the city (SF). If you're trying to keep expenses down, find as cheap as possible (while livable) studio or room up with roommates. Otherwise rent can be quite expensive if you never lived in this area. The best way you can see how much rent costs for the conditions of the places is to just browse through craigslist for a feel (it'll be better than any numbers I throw out here).

San Francisco: <http://sfbay.craigslist.org/sfc/apa/>

Peninsula which includes Silicon Valley: <http://sfbay.craigslist.org/pen/apa/>

Best places to live are San Francisco or Palo Alto. If you can't afford either, live in nearby cities. Mountain View is a great alternative to Palo Alto that is more affordable.

Having said that, if you're willing to commute via public transit or by car, it matters less. Just be aware rush hour can be brutal between SF and the Valley.

There are a TON of events both in the valley and in SF. For language specific events/meetups, most of the better ones are in the city i.e. python meetup, php meetup, etc... For hacker mixers and various other speaking events, those are more in the valley. There are usually some sort of event happening at Microsoft and Google as well that you can look out for including GTUG at Google.

The best way I find events outside of people sending me links or what not is to join meetup groups via meetup.com, join the StartupDigest email list, join Plancast and follow people/friends, and browse Eventbrite.

Once you're here, you'll be plugged into more private events and stuff as well, that aren't found in the above.

Hope that helps.

</comment><comment><USER3> For housing, check out <http://www.padmapper.com></comment>


Making emails better: the MixPanel for email - <AUTHOR> http://blog.getvero.com/making-email-better-building-the-mixpanel-for-email/

<comment><USER3> Wow. I've been working on a presentation[1] for a conference in Tokyo[2] that uses this exact same image/diagram to visualize this concept. While it's fairly obvious to use a ven diagram to visualize this, it's still strange to see the exact same visualization that I used coming from someone else's brain too. It's a nice validation.

Showing the open rates makes it even more effective.

[1][http://prezi.com/ipuykc88vvfg/how-to-leverage-email-and- its-...](http://prezi.com/ipuykc88vvfg/how-to-leverage-email-and-its-data-to- engage-your-users-and-profit/)

[2][http://onlab.jp/blog/archives/2012/05/onlab-data- conference-...](http://onlab.jp/blog/archives/2012/05/onlab-data-conference- english.html)

<comment><USER4> I had not seen your presentation but it's got a lot of really detailed, useful information. I will certainly revisit it.

Likewise, very interesting to see the same diagram come out of someone else's brain. 'Great minds think alike' as they say.

<comment><USER3> I should have mentioned that I enjoyed the post. Sorry - I rushed the comment as I was running out the door.

You guys get it and it's great to see you working on this. Definitely, ping me if you'd like to discuss some more.

</comment></comment></comment><comment><USER5> <http://intercom.io>

<http://customer.io>

Good luck.

<comment><USER6> Is intercom.io legal? It requires publishers to send customer PII (email address) in a JavaScript to a third-party. It would be trivial for Intercom to join that PII to an ad network tracking cookie, for example. Seems like a huge no-no.

<comment><USER7> Completely legal - in California all you have to do is post a privacy policy on your page if you collect this information. Almost everyone is collecting this and it applies to everyone regardless of whether they are a 3rd party or not.

Though, by the looks of it, intercom.io may benefit from a privacy policy =)

<comment><USER8> Here you go:

<http://docs.intercom.io/privacy.html>

</comment></comment></comment></comment><comment><USER9> Related post on user retention/lifecycle email marketing as a service for those interested in the space: [http://paulstamatiou.com/startup-user- retention-lifecycle-em...](http://paulstamatiou.com/startup-user-retention- lifecycle-email) (and HN commentary on that post: <http://news.ycombinator.com/item?id=3378583> )

Basically a call to action for more companies to tackle this .. and it looks like a bunch are. Exciting times for a big problem.

<comment><USER8> +1

Here's another post on the topic:

<http://blog.intercom.io/automated-emails-customer-respect/>

</comment></comment><comment><USER10> As the comments show, there's a clear need for this that lots of great folks are going after (Vero, Intercom, etc) - but it all treads the fine line between usefulness and annoying for the end customer. If I look at some of the key examples on the Vero site, some seem to fit the obviously non-annoying bucket (email people if they haven't logged in in two weeks) while others are more dubious (send a user an email when they buy ten widgets).

Two solutions to this: \- Doing some meaningful analysis that compares successes/failures within the same cohorts to identify really important inflection points (i.e. a user needs to complete setup within 48 hours or they never will)

\- Talking to customers to really understand the onboarding process so that you can use these event triggers to provide even better customer service.

These tools are definitely better than nothing, but I'm left thinking that we (as a community online) might be able to do better. Is the answer to better customer service on the web really more sophisticated automated emails? Or is it actual personalization + meaningful analysis?

<comment><USER8> The stock answer to this is that "actual personalization" doesn't scale. But I think that's BS. It comes from people who think of web business customers as datapoints—heartless automatons traversing A/B test optimized sign-up funnels.

Today's and tomorrow's high-margin businesses do and will invest in real humans. It's truly mind-blowing that Apple can find and very comfortably pay nice, smart, real people who can understand the problems of any customer who walks in off the street and fix them, one by one. But they do.

I think that the future of support / customer service / customer development / marketing involves more humans and less automation. I'm part of the Intercom team and we've designed the first version of our product to fill the gap between now and that future—we have a great amount of automation and a great amount of one-to-one communication features, integrated tightly together. By design, we don't allow our customers to send automated messages that can't be responded to because we know that the real value happens when real people get involved.

</comment></comment><comment><USER6> This has definitely got legs - well done to the Vero guys.

If you take shopping cart abandonment emails (which I'm most familiar with), you see a set of quite tired, overpriced providers (see e.g. <https://www.barilliance.com/pricing>) - so there's definitely a big opportunity to shake the transactional CRM market up.

Question: as a generator of customer events (I run SnowPlow, an open-source alternative to MixPanel, <https://github.com/snowplow>) how can I integrate SnowPlow events into Vero - do you have an API or similar?

<comment><USER11> A bit off topic - how are you finding SnowPlow?

I love the idea but I worry that it is no where near ready for the mainstream (more because of a lack of skill amongst web analysts then anything to do with the product)

<comment><USER6> Hi rfergie, you're right, on the analytics side, there's a lot to do to educate analysts on how to perform customer-level analyses at web-scale. Hadoop and Hive are a new toolkit for sure - we're writing a load of Hive analysis tutorials (<https://github.com/snowplow/snowplow/wiki/Analysts- cookbook>), but ultimately we're going to need to "go up the stack" and start building some UIs. Web analysts in particular expect GUIs (general business analysts in BigCos are more comfortable with SQL, R etc).

At the moment our early adopters are more on the technical side - people who want to embed SnowPlow into their adserver/social game/analytics tool/whatever. SnowPlow is kind of the only game in town for this (because it's webscale and costs scale predictably - they're just AWS costs).

If you have any other questions, feel free to shoot me an email - firstname.lastname@example.com

</comment></comment></comment><comment><USER12> This looks very interesting; I've requested an invite.

One meta question: why not link the Vero logo to the main Vero site?

<comment><USER13> I saw it was 'fixed' below, but it's an annoying side-effect of everyone using "blog.*" as a blog address, and all default blog software assuming that 'home' is /

WP4 will probably have a step in the install software saying 'should we link the default home to /, or if not, where should we link to?' and everyone will praise it as innovative, and sadly, given the state of blog software, it will be. :/

<comment><USER4> You hit the nail on the head...that is exactly why it was heading to "/".

</comment></comment></comment><comment><USER14> I know these two guys for a few years. They know how to hustle and the problem they are solving is huge. Its a no brainer for companies who want conversions to use their system and utilize user triggered emails.

</comment><comment><USER15> Great idea, I have been thinking of something similar for a while.

</comment><comment><USER16> Quit annoying your users with unsolicited email.

<comment><USER4> We actually agree with you. There is fine line between sending emails that are an annoyance and emails that hold value.

Email is an extremely effective tool for both marketing to and communicating with your users. Our aim is to make event-based emails as targeted and personal as possible. If a user receives an email pertinent to their personal situation it's much less likely to be received as an annoyance or spam.

You need to respect the inbox but that doesn't mean you can't use it at all!

</comment></comment><comment><USER17> This type of user engagement is what Sailthru, one of the fastest growing NYC startups, powers for several well known startups and larger companies - <USER2> the client list:<https://www.sailthru.com/clients> (Disclaimer: I work on product there). Our idea is to focus on user retention rather than user acquisition - and we help people do this by making their messages actually meaningful, and on the users' terms.

Part of this is triggers, which seems to be the focus of a lot of the discussion here, but an even bigger piece is personalization. The idea with personalization is to show the user content that is relevant to them. That involves a big analytics and prediction component in terms of figuring out their context, and their interests. We've seen some pretty crazy results in terms of jumps in engagement that emerge from personalizing emails to users, and also engaging users at the right points in time, in the right ways. This is relevant to the triggers conversation as well, in terms of being able to identify and personalize the triggers for each user. We haven't run explicit experiments on that aspect in terms of magnitude, but a trigger system in a vacuum won't give you the same type of power as a personalized/automated one.

Even things like personalizing WHEN you send an email to a user have a dramatic effect on open/click rates. One of our clients experienced a 10% increase in revenue (they were already making substantial revenue) by leveraging Horizon Send Time (Our product that sends an email to a user when they are most likely to open based on that users previous open habits).

The right combination of personalization to users, and appropriate event-based triggers, can really improve the perception of users (oh wow the content being sent to me is actually valuable!), and increase their happiness, and subsequently their life-time value.</comment>


Marissa Mayer Is Still Here - <AUTHOR> https://mobile.nytimes.com/2018/04/18/business/marissa-mayer-corner-office.html <comment><USER2> No one thought this story was worth upvoting.</comment>


Ask HN: Are Internet speed tests accurate? - <AUTHOR>

Are internet speed tests, like those provided by Ookla or Speakeasy, accurate? How similar/dissimilar are the methodologies used by different speed tests? Are there more realistic ways to measure your internet speed for the average HN reader? <comment><USER2> The accuracy can vary, but for the most part I've found them to display results that are right in line with what ISPs quote their speeds to be. Ookla explains the way that their speed tests work here -[https://support.speedtest.net/hc/en- us/articles/203845400-Ho...](https://support.speedtest.net/hc/en- us/articles/203845400-How-does-the-test-itself-work-How-is-the-result- calculated-) and that's the idea behind all of them.

Probably the most inaccurate representation of speed that I've come across was when I had just done a firewall replacement for a customer and I didn't catch that their ISP had the speed/duplex settings on their equipment set to a hard- coded 100/Full-duplex. The firewall that I installed was set to auto-negotiate and since the ISP's equipment was hard-coded, the firewall negotiated at 100/Half-duplex. If you're not familiar with what half-duplex means, basically it means that you can still send & receive data, but you can only do one at a time -vs- full-duplex where you can send and receive at the same time. The problem with a speed test is that the download test only downloads, and the upload test only uploads, so in the case of the duplex mismatch, the speed test looked fine. As soon as users came in the next morning and put the internet connection under load, they began complaining about internet speeds and we realized that we had a problem with the duplex settings.

Another way to test is a utility called iperf, but it's a lot more complicated and requires you to have access to the remote machine. - [https://iperf.fr/](https://iperf.fr/)

</comment><comment><USER3> No. Servers get saturated, some links are slower than others and your ISP may prioritize the traffic. Best way of testing I know of is either using your own server or grabbing a null file from a known host (at least funet in Finland).</comment>


Best Ways to Use Instagram to Promote your Products – 8 things to implement now - <AUTHOR> http://www.reddit.com/r/SocialMediaMarketing/comments/2gydc1/best_ways_to_use_instagram_to_promote_your/

<comment><USER2> doing 2 of them....so there's a lot of room for improvement :)

</comment><comment><USER3> amazing ideas, will definitely try them out!</comment>


How I Built a Telegram Reminder Bot with Node JS, IBM Watson API and Firebase - <AUTHOR> https://hackernoon.com/how-i-built-a-telegram-reminder-bot-with-node-js-the-ibm-watson-api-and-firebase-7128c778e3d7 <comment><AUTHOR> Came across this really interesting read today, and wanted to share it here.</comment>


Google's ethics board shut down - <AUTHOR> https://www.bbc.co.uk/news/technology-47825833 <comment><USER2> > There had been an outcry over the appointment of Kay Coles James, who is > president of conservative thinktank The Heritage Foundation. Thousands of > Google employees signed a petition calling for her removal, over what they > described as "anti-trans, anti-LGBTQ and anti-immigrant" comments.

And

> At the weekend, board member Prof Alessandro Acquisti resigned, tweeting: > "While I'm devoted to research grappling with key ethical issues of > fairness, rights and inclusion in AI, I don't believe this is the right > forum for me to engage in this important work."

So it sounds like Google picked someone with a "dissenting" opinion (the conservative) who then was pushed out for her dissenting opinion, and then another board member decided to leave, either because they too worried about being pushed out for not toeing the line, or worried about having to debate the other person.

Either way, it sounds like "diversity of opinion" was only lip service here. Isn't the whole point of an ethics board to have people who have different takes on the ethics of a situation? If the whole board is comprised of like minded individuals, doesn't that defeat the point?

<comment><USER3> The whole board should be composed of _ethical_ individuals.

Should we invite influential amish personalities to our confs going forward? You know, so they can contribute their diversity of opinion to the techno- hacker community?

<comment><USER4> > Should we invite influential amish personalities to our confs going forward?

Actually, that'd be a great idea. IIRC, the Amish aren't against technology, they're just against letting new technology haphazardly drive social changes, so they're careful in how they adopt and use it.

For instance one group decided to adopt the telephone, but they were wary of it disrupting family and community social bonds by causing people to shift their focus to other people far away (a practice that is demonstrated writ small when you ignore everyone around you to take a call). They managed the drawback by specifying the community wouldn't have telephones in their homes, but only have one telephone in a little phone booth for everyone to use.

<comment><USER3> That is fascinating, and maybe not the best analogy for what I wanted to communicate.

So focusing on just the Google ethics team; if your team can't even agree on the definition of ethical how can it reach consensus on ethics issues?

<comment><USER5> By discussing it rationally and coming to a consensus. No one has a universal definition of ethics—such a thing is impossible for limited, innately selfish humans (which we all are). And no two people will likely ever agree on every single ethical question presented. But, by discussing something at a round table of thought-diverse people, as long as they are all guided by the principal of wanting to come to agreement, will result in a productive, reasonable compromise. To say that a genuinely well-meaning person shouldn't be allowed at that table because they disagree with the others is the same as saying you're fine with biased outcomes, as long as they're biased towards you.

</comment></comment></comment></comment></comment><comment><USER6> That's a great headline with Google's name in it. Goes well with "Google Removes 'Don't Be Evil' Clause From Its Code of Conduct" [https://gizmodo.com/google-removes-nearly-all-mentions-of- do...](https://gizmodo.com/google-removes-nearly-all-mentions-of-dont-be-evil- from-1826153393)

</comment><comment><USER7> 2004: Don't be evil.

2019: Don't be ethical.

<comment><USER8> 2018: Don't be too scientific.

</comment></comment><comment><USER9> What a bad headline, it's the AI ethics board specifically.

<comment><USER10> So what? All the decisions at Google that affect users are made by AIs of some sort. That's why they ask you all the time if you are a robot-- and why they don't give you any human support: that notion literally makes no sense to them.

</comment></comment><comment><USER11> This is why we can't have nice things.

People must learn to get along.</comment>


YouTube Is Facilitating the Sexual Exploitation of Children, Being Monetized - <AUTHOR> https://old.reddit.com/r/videos/comments/artkmz/youtube_is_facilitating_the_sexual_exploitation/egpmh9o/ <comment><USER2> This video was _incredibly disturbing_. I could not sit through in one go.

The ease of ending up in that wormhole is fucking disgusting to me, but it is also precisely what happens when the algorithm's ultimate goal is "max consumption". You get a bunch of seemingly benign videos just on the edge of being sexually explicit minor content getting grouped together and finding its audience (that appears to be large enough to be counted in millions).

I mean, for fuck's sake, what other reason could there be for a "popsicle challenge"?

</comment><comment><AUTHOR> Quote from Mattwatson07:

"Over the past 48 hours I have discovered a wormhole into a soft-core pedophilia ring on Youtube. Youtube's recommended algorithm is facilitating pedophiles' ability to connect with each-other, trade contact info, and link to actual child pornography in the comments. I can consistently get access to it from vanilla, never-before-used Youtube accounts via innocuous videos in less than ten minutes, in sometimes less than five clicks. I have made a twenty Youtube video showing the process, and where there is video evidence that these videos are being monetized by big brands like McDonald's and Disney.

This is significant because Youtube's recommendation system is the main factor in determining what kind of content shows up in a user's feed. There is no direct information about how exactly the algorithm works, but in 2017 Youtube got caught in a controversy over something called "Elsagate," where they committed to implementing algorithms and policies to help battle child abuse on the platform. There was some awareness of these soft core pedophile rings as well at the time, with Youtubers making videos about the problem.

I also have video evidence that some of the videos are being monetized. This is significant because Youtube got into very deep water two years ago over exploitative videos being monetized. This event was dubbed the "Ad-pocalypse." In my video I show several examples of adverts from big name brands like Lysol and Glad being played before videos where people are time-stamping in the comment section. I have the raw footage of these adverts being played on inappropriate videos, as well as a separate evidence video I'm sending to news outlets.

It's clear nothing has changed. If anything, it appears Youtube's new algorithm is working in the pedophiles' favour. Once you enter into the "wormhole," the only content available in the recommended sidebar is more soft core sexually-implicit material. Again, this is all covered in my video.

One of the consistent behaviours in the comments of these videos is people time-stamping sections of the video when the kids are in compromising positions. These comments are often the most upvoted posts on the video. Knowing this, we can deduce that Youtube is aware these videos exist and that pedophiles are watching them. I say this because one of their implemented policies, as reported in a blog post in 2017 by Youtube's vice president of product management Johanna Wright, is that "comments of this nature are abhorrent and we work ... to report illegal behaviour to law enforcement. Starting this week we will begin taking an even more aggressive stance by turning off all comments on videos of minors where we see these types of comments."1 However, in the wormhole I still see countless users time-stamping and sharing social media info. A fair number of the videos in the wormhole have their comments disabled, which means Youtube's algorithm is detecting unusual behaviour. But that begs the question as to why Youtube, if it is detecting exploitative behaviour on a particular video, isn't having the video manually reviewed by a human and deleting the video outright. Given the age of some of the girls in the videos, a significant number of them are pre- pubescent, which is a clear violation of Youtube's minimum age policy of thirteen (and older in Europe and South America). I found one example of a video with a prepubescent girl who ends up topless mid way through the video. The thumbnail is her without a shirt on. This a video on Youtube, not unlisted, and is openly available for anyone to see. I won't provide screenshots or a link, because I don't want to be implicated in some kind of wrongdoing.

I want this issue to be brought to the surface. I want Youtube to be held accountable for this. It makes me sick that this is happening, that Youtube isn't being proactive in dealing with reports (I reported a channel and a user for child abuse, 60 hours later both are still online) and proactive with this issue in general. Youtube absolutely has the technology and the resources to be doing something about this. Instead of wasting resources auto-flagging videos where content creators "use inappropriate language" and cover "controversial issues and sensitive events" they should be detecting exploitative videos, deleting the content, and enforcing their established age restrictions. The fact that Youtubers were aware this was happening two years ago and it is still online leaves me speechless. I'm not interested in clout or views here, I just want it to be reported."

</comment><comment><USER3> I am afraid of the slippery slope: the way things are going with our society, soon you will have to accept sexualisation of children, or you will be labelled a bigot.

So maybe it is not surprising after all that youtube is doing this.

<comment><USER4> I've seen that argument before—if, indeed, you are saying that pedophilia will be treated like just another form of sexuality—but I don't think it holds any water.

The same communities that are most strongly in favour of normalizing all the facets of LGBTQ+ sexualities, gender identities, etc are also, generally speaking, almost fanatically devoted to the idea of consent.

Minors can't consent.

There are certainly groups of people trying to push for the normalization of pedophilia (I've seen various places talk about "Minor Attracted Persons", or "MAP", mostly in the context of PSAs warning young people to beware of them), but they are, at least for the most part, entirely separate from the people trying to make every type of sexual activity imaginable _between consenting adults_ normal and accepted.

<comment><USER3> >Minors can't consent.

That's where it breaks down: they will say "well, maybe 16+ yos CAN consent after all!", and then the number will start getting lower and lower.

I mean... I hope I'm wrong. But we have gone down this road already ;)

<comment><USER4> What road? When have we gone down it?</comment></comment></comment></comment>


Security Flaw in common keycard locks exploited in hotel room break ins - <AUTHOR> http://www.forbes.com/sites/andygreenberg/2012/11/26/security-flaw-in-common-keycard-locks-exploited-in-string-of-hotel-room-break-ins/ http://www.forbes.com/sites/andygreenberg/2012/11/26/security-flaw-in-common-keycard-locks-exploited-in-string-of-hotel-room-break-ins/ <comment><AUTHOR> I'm impressed, crime victim Janet Wolf believes in full disclosure, even after she was victim of exploit.

"As for Janet Wolf, an actual victim of the Houston hotel thefts, she blames the Hyatt, not Onity. "If they're vulnerable to these hackers and they knew this was a problem, to me that's their fault," she says.

And would she rather that Onity's security flaw had never been publicized in the first place?

"No," she says. "It should be made public so that the hotels can fix it. If people are vulnerable and there's a fix out there, they need to know.""</comment>


You can play Doom inside Emacs using EAF - <AUTHOR> https://old.reddit.com/r/emacs/comments/f2c99b/you_can_play_doom_inside_emacs_using_eaf/ <comment><USER2> Emacs is a pretty capable Operative System. If only it had a decent text editor... Well, yeah there's Evil mode,but now that I think of it, you could probably run Vim using EAF!!!</comment>


McDonald's Acquires Machine-Learning Startup Dynamic Yield for $300M - <AUTHOR> https://www.wired.com/story/mcdonalds-big-data-dynamic-yield-acquisition/ <comment><USER2> Two things most surprising about this:

\- Presumably you can get 90% of the value for 5% of the price. McDonald's isn't Amazon. They have 100 (?) menu items, not 1,000,000 products. Why are they spending $300M instead of hiring a few data scientists? Or just be a customer of the company?

\- Dynamic Yield has many other clients, and it sounds like they'll continue to serve those. Is McDonald's the right owner for a high-tech customer intelligence product? It just feels like such a bizarre cultural and core- competency fit. Maybe invest partly in it, but buy it outright? I don't get it. Seems like you'd rather share the board with other experts?

<comment><USER3> I don't know about McD's, but I work at another very large franchised quick- service restaurant (QSR) (not McD's, but in a different category).

For companies like these, that operate in 10's of thousands of franchisee- owned locations, the number of products and the combination of configurations is not merely a function of the things you see on the menu. It's all of those products, with their different combination of parts (beef patties, lettuce, etc.), and then franchisee and regional variations (In some countries, you can't tell a franchisee what they can or can't sell, etc.)

Add on top of that customer modifications to the product in their order (extra pickles, no onions, etc.)

Why does this matter? It drives lots of stuff - food costs, inventory, inventory & sales forecasting (how many pickles do I need this week?) new item research, profit margins, etc.

So you take this, multiply it by 10,000, 15,000, or, in McD's case, 36,000 stores across 100+ countries (half both those numbers in my company's case) and you're talking about vast amounts of information across millions of transactions every day, and that is in fact Big Data.

Whether this is a smart move, I'm not sure. I'm of the opinion that if a piece of technology is core to the _operation_ of your business (for a QSR, things like POS systems, backend administrative systems, etc.), it should be in your house. Other things (HR systems, big data systems) should not be. But maybe McD's sees it differently.

<comment><USER4> >> "and that is in fact Big Data."

don't you mean "and that is in fact Big Mac Data."

</comment></comment></comment><comment><USER5> It seems like when your company's revenue has been flat for over a decade, you should focus on improving your core offering of, you know, _food quality_ , and not find new ways to annoy customers with data mining and extreme personalization.

In 2009 Dominos realized their food sucked, committed to improving it, and have since been doing very well. (Their stock has more than quadrupled.) At some point McDonalds will need to do the same.

<comment><USER2> What are you talking about? McDonald's has been.

They revamped their quarter pounders a ~year ago to be much fresher, tastier, juicier burgers. They serve more gourmet-style toppings now and a variety of cheeses. They're experimenting with new items like the morning "donut sticks" which are surprisingly good. The buttermilk chicken tenders are worlds beyond the old nuggets. And you can get breakfast all day, with eggs that are now fresh-cracked.

They still sell all their old stuff because people still love it. But if you think their menu hasn't been increasing in quality for those who want it, you haven't been paying attention. Some people prefer not to believe it.

But it's still McDonald's. People want and like McDonald's. They're not looking for fine dining.

<comment><USER6> McDonalds as a company has fine food quality based on the fresh hot and delicious McDonalds I got in Japan. I believe McDonalds US has a store management and personnel problem, i.e. that no one gives a shit. Even after the "fresher" Quarter Pounders the meat was warmer but I sometimes got buns so dry and stale they were falling apart in the box. Sure theres lots of timers and tech to make sure workers can't burn the fries but it appears to me no one in charge of overall quality or consistency.

<comment><USER7> That's what happens when you have a culture that so heavily looks down on people who work these kinds of jobs. Failures who couldn't make it in school work at Mcdonalds they say, and failures they'll get, making their burgers.

<comment><USER8> Yeah, the attitude of Japan towards these workers is vastly different.

</comment></comment></comment></comment></comment><comment><USER9> Dynamic Yield (reasonably) seems to focus initial efforts on associating a unique id with customers. Given that, it's not much of a leap at all to think that McDonald's will start capturing license plates in the drive through and associating them with the correct order. (Heck, they might do it already) With Dyanamic Yield they then offer custom recommendations the next time that plate number is detected.

I'm not sure if that creeps me out, or if the data geek in me likes the elegant solution to a problem. Why choose? It can be both.

<comment><USER10> Well, at mom and pop shops it already happens via the human worker recognizing and tracking you, without consent.

<comment><USER11> Still creeps me out.

<comment><USER12> Just say loudly as you enter the establishment: "I do not consent to being tracked, except as necessary to fulfill the service under GDPR"

</comment></comment></comment></comment><comment><USER9> Interesting that they decided to acquire the company rather than just become a customer. Perhaps they saw strategic value of depriving other potential customers? In any case, the article was light on specific insights McDonalds has received and instead gave hypotheticals, so I thought I'd share this from Dynamic Yield-- it's a case study with more specifics so it gave me a much better idea of what they do:

[https://www.dynamicyield.com/case- studies/hellofresh/](https://www.dynamicyield.com/case-studies/hellofresh/)

</comment><comment><USER13> I think customers will find this very annoying. There's already way too many options on the menu. And their in store self service ordering kiosks are horrendously complicated already.

They should eliminate about 60% of the menu and focus on speed and quality for the remainder.

<comment><USER14> _focus on speed and quality_

That's the idea. Part of what they're trying to do is speed up drive-thru service, since that's now where the majority of customers visit.

Humans can't predict what to make in the minutes before a customer pulls up to the speaker, but an ML tied into a number of systems and inputs might be able to do a better job.

It's not really anything new, to be honest. Back in the days where restaurants cooked and wrapped the burgers ahead of time and held them in a warming bin for 10 minutes at a time (at least that's what the spec dictated) the managers would keep detailed records on customer count, weather, cars in the lot, local events, etc and try to make predictions based on historical data. Wasn't the most effective, but it helped. This is just a modernization of that idea.

<comment><USER15> Man was it fast when you could come in and they had burgers in the bin waiting. They got shamed into cooking to order, and the downside is waiting; I'm never ordering a quarter pounder again since they changed those recently to take forever to cook.

<comment><USER14> From what I know, speeding up the whole "made to order" menu is one of the prime motivators of all this technology. The fresh burgers are a leap ahead in quality but an order of magnitude slower to make.

MCD will most likely spend half a billion dollars to get that burger on the grill 90 seconds earlier if it's possible.

<comment><USER13> No the burgers are not a leap ahead. They are marginally better, but that isn't saying much. I find them barely edible but tolerate them if I'm pressed for time.

<comment><USER14> Your opinion vs millions of data points on their end. You do you.

</comment></comment></comment></comment></comment></comment><comment><USER16> "If someone orders two Happy Meals at 5 o'clock, for instance, that's probably a parent ordering for their kids; highlight a coffee or snack for them, and they might decide to treat themselves to a pick-me-up. And as with any machine-learning system, the real benefits will likely come from the unexpected." It looks like 'machine learning', 'data mining', etc. gets thrown around a lot even when irrelevant. That machine was never going to find out that it was a parent in there ordering 2 happy meals for their kids. Its more like 'if 2 an item tagged for_kids sold then suggest item tagged for_adults, if weather_temp > 40 degreea then suggest ice coffee otherwise hot coffee' where is machine learning in that? I honestly would prefer they showed me my recent orders based on my cars license plate just like dominos.com does when I go back on their website

<comment><USER17> Machine learning isn't magic. It's just math.

Feature: for_kids, for_adults

Machine learning allows you to generalize inference across a large number of features.

Instead of hardcodong control flow, you train to maximize an objective function.

The belief is that once trained, you can infer cheaply and scalably.

</comment></comment><comment><USER18> This acquisition is a prime example of what the future of food is going to look like. It's interesting how food has been one of the last major consumer categories to be eaten by software. But it's finally happening!

Three simultaneous changes are happening related to the availability, personalization, and niche focus of food. I've done a deep dive on this (1) if you want to read more.

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

</comment><comment><USER19> The beginning of the robotic takeover according to Manna :) [https://marshallbrain.com/manna1.htm](https://marshallbrain.com/manna1.htm)

<comment><USER20> Do you think "Australia" is real, or a cover name for a prison or worse?

</comment></comment><comment><USER21> Travis from UBER is starting a kitchen sharing company.

McDonalds has been in the real estate game within hospitality larger and longer than anyone.

This move makes a lot of sense and hopefully they move smartly to compete as the industry evolves.

McDonald's can't scale ethically raised food to their restaurants at the price points that matter to their customers but they can bring operational and supply chain expertise to startup restaurants.

Maybe this is part of a bigger transition.

</comment><comment><USER22> I do worry about the loss of jobs at this level though.

Is it right to think that $300M investment + time to turn it into usable product for the restaurants == Loss of many minimum wage (or slightly more) jobs to make back that $300M

My local Wal*Mart now has 25 self checkouts and only 2 people manned registers.

<comment><USER23> Why, that would be great news! Or do you think anyone enjoys doing this type of work?

Now it's time for the governments of the world to catch up and introduce a basic income.

<comment><USER22> It might be great news on some level, but that many jobs still effects the GDP and more importantly people's lives until they find other work, if they can, and it may bot be easy for them. Enjoy it or not. Putting food on the table and the next day not being able to is hard on anyone. Multiply this my potentially millions of jobs.

</comment></comment></comment><comment><USER24> You need at least machine learning to fix the touchscreen centered restaurants absurdity

</comment><comment><USER25> That's scary stuff. If I ate at McDonald's, that would be enough to make me stop.

<comment><USER26> An AI driven menu scares you more than the contents of the food does?

<comment><USER25> I don't like the food, and I don't like the surveillance and manipulation about equally as much.</comment></comment></comment>


Ask HN: Recommend a website screenshot API? - <AUTHOR>

I'm working on a bookmark organizer site to teach myself some new libraries/techniques, and I'd like to show ~200px screenshots of the bookmarked pages. Can anyone recommend a service to provide those screenshots? I did a search first and most of the years-old recommendations are no longer in business. <comment><USER2> Though it meant a bit of server setup, I had a good experience using self- hosted PhantomJS. I have a mini how-to here, in the "Rendering the screenshot" section: [http://petewarden.typepad.com/searchbrowser/2011/11/how- to-p...](http://petewarden.typepad.com/searchbrowser/2011/11/how-to-post-a- screenshot-of-your-app-to-a-users-facebook-account.html)

<comment><AUTHOR> Thanks. That was easier to set up than I expected -- lots of prerequisites but all easy to install. I just need to figure out why the fonts are coming out wrong, then maybe it'll make more sense to set up a queue to build screenshots myself with this instead of paying for a service.

<comment><AUTHOR> <http://i.imgur.com/FLGH8.png>

<comment><USER3> How long did these take to render with phantomjs?

<comment><AUTHOR> I set up a queue/worker setup with a max of 5 threads to generate screenshots with phantomjs then resize them with imagemagick. It was averaging one URL per second. Wasn't very taxing on the CPU so probably could be pushed much higher even on this little VPS.

<comment><USER3> Excellent! Thanks for the tip. I'm currently using url2png and imagemagick. URL2PNG is an excellent service, but probably won't be economically feasible for me, long term, when I get to trying to scale my app. ( I'm working on a visual bookmarking app with screenshot thumbnails serving as tiles on a draggable corkboard interface. You can double-click the tiles to open the target url in a draggable iframe. Example: <http://beta.mindcast.com/ui/4k82yb5zb2ov> )

</comment></comment></comment></comment></comment></comment><comment><USER4> Here are two options. Webkit2png (free for Mac) - <http://www.paulhammond.org/webkit2png/> Khtml2png (free for Linux) - <http://khtml2png.sourceforge.net/> Paid online api - <http://url2png.com/>

<comment><USER5> Can recommend url2png, very good service.

<comment><AUTHOR> I like it too (really, thanks for the suggestion), but the pricing is way too high, by at least an order of magnitude. A single user might import 1000 bookmarks -- there's $10 right there.

Now that I've set up phantomjs (headless webkit) on a VPS per petewarden's suggestion, I can see what it costs to run a screenshot farm myself. A couple pennies per thousand images at most for bandwidth -- Linode's smallest instance can run a bunch of webkit instances in parallel just fine. I've already generated and resized almost 1000 screenshots since installing it all.</comment></comment></comment>