The Brave web browser is hijacking links, and inserting affiliate codes - <AUTHOR> https://davidgerard.co.uk/blockchain/2020/06/06/the-brave-web-browser-is-hijacking-links-and-inserting-affiliate-codes/ <comment><USER2> I'm surprised people are surprised by this. Brave have said from the beginning that this is how their business model works. What I'm even more surprised about is that Brave has gotten any traction at all, as there is really no reason to use it instead of a normal browser with regular ad blockers.

<comment><USER3> I use it on iOS because its an easy solution for ad-blocking. Is there a good ad-blocker for Safari on iOS?

<comment><USER4> I use 1Blocker on iOS and MacOS safari, which is great but costs 5$ a year. There is no full port of uBlock to safari at this time.

<comment><USER5> I'm a huge fan of 1Blocker and I'm glad they charge $5 a year and it's someone's full time lifestyle company.

I've had a few content blocking apps on iOS and they've all been abandoned (or worse sold to ad companies).

1Blocker so far has stuck around and stayed high quality.

</comment></comment></comment></comment><comment><USER6> From the same browser that brought you "Hey we'll just start taking donations for everyone whose ads we block, and we won't put any effort into contacting anyone to tell them about this - and if they do find out, the process to start getting those donations is a giant pain in the ass!"

I'm tempted to add some browser sniffing to my site just so I can block this scammy thing. I don't even have ads on my comics any more, just a Patreon. And I fully expect at this point that anyone clicking my Patreon link on Brave would get redirected to some weird site they built that skims my Patreon posts, makes you pay in crypto, and only pays me 5¢ out of every dollar you think you're paying me.

<comment><USER7> Nothing I've read about Brave has ever made me want to use it instead of _any other browser with a basic ad blocker,_ and this whole "we will save the web by substituting other people's ads with our own and making them all party to our business model whether they want to be or not, also something something cryptocurrency woo" shtick was the main reason. It continues to be the main reason.

<comment><USER8> They don't substitute on page ads and viewing ads that are notifications is optin. There are also ads on new tabs. That's another chance to earn BAT. The user decides if they want to donate to a site. If the owner doesn't sign up the tips remain with the user. I have donated $10 to my favorite open source developer after convincing him to sign up. All I had to do was visit his GitHub profile and click a few times.

That Brave uses cryptocurrency is not a reason to dismiss it. There is a lot of hand waving but the hand wavers have no idea how Brave works. At least be familiar with the object of your criticism. Even the author of the blog post doesn't know the difference between a link and auto complete. How is that helpful?

A legitimate criticism of Brave is that competitors like Scroll have amassed quite a few publishers for their micropayments platform. Can Brave catch up?

</comment></comment></comment><comment><USER9> > However, Eich is very sorry that Brave got caught — again — and something > will be changed in some manner to stop this behaviour, or at least obscure > it.

No surprise there.

> There is no good reason to use Brave. Use Chromium — the open-source core of > Chrome — with the uBlock Origin ad blocker [...] or use Firefox with uBlock > Origin — 'cos it blocks more ads than the Chromium framework will let > anything block.

Is this true? I assumed the functionality would be the same.

<comment><USER10> How is the android scene for Chromium based browsers that either have extension support or adblockers?

I am aware only of Yandex & Kiwi as Chromium browsers that support extensions that allow you to install an adblocker. So perhaps Brave is trying to integrate itself there somehow by having it built in.

Anybody know a better breakdown than this for mobile browser market share? [https://gs.statcounter.com/browser-market- share/mobile/world...](https://gs.statcounter.com/browser-market- share/mobile/worldwide#monthly-201905-202005-bar) It says Chromium is 61% and Yandex is 0.1% but it would be nice to see if Brave was included or not.

<comment><USER11> Yandex is the company whose sites actively fight ad-blocking more than anyone else of whom I know. Afaik Yandex is just not in the uBO lists anymore, because it was no use changing the filters again and again. So I guess Yandex _might_ allow installing filters which can't catch it anyway, but I wonder if it won't cripple the extension somehow for good measure.

<comment><USER12> their browser doesn't affect functionality of ublock, but it's not good browser anyway, trying to show down your throat many intrusive features by default

</comment></comment></comment></comment><comment><USER13> Being a happy Firefox user and watching all the browser drama from the backyard. I still don't understand why people uses Chrome or Chrome variants claiming privacy things.

<comment><USER14> With Chrome taking the lion's share of the browser user market, you end up with a lot of sites that work well in Chrome but not so well with other browsers.

So even if you use Firefox as your main driver, you'll still want to have a Chromium-based browser as a backup.

Now the problem for Android users is that, in light of this news, there's now one less (seemingly) viable option if you're using Google Play services.

If you're using F-droid, however, you have Bromite and ungoogled-Chromium as prime candidates.

<comment><USER15> > So even if you use Firefox as your main driver, you'll still want to have a > Chromium-based browser as a backup.

Nope. When something doesnt work in my FF then good bye. I cant be bothered to do extra work like switching browsers for to support their incompetence. It'been rare though.

<comment><USER16> Very rarely, I fall back to Safari because I'm on Mac. But on my laptop, I don't have anything installed from Google. It's just not necessary.

</comment></comment></comment></comment><comment><USER17> I would think the affiliate programs wouldn't like this either.

The browser isn't doing anything to drive traffic. It's just taking credit for traffic that was coming already.

<comment><USER18> Good point. Maybe brave should make affiliate-able links blink and/or respond to clicks in a wider area? (Just to be clear: this is satire. Please don't do this.)

<comment><USER19> Don't give him ideas.

</comment></comment></comment><comment><USER20> Brave's whole business model is flawed, even ignoring shenanigans like this.

They claim they want to fix everything wrong with today's web (annoying and privacy-invasive ads, etc) by replacing them their own ads backed by a shitty cryptocurrency. While this might work in the short term while the browser is niche, they will have no choice but to deploy the same techniques once it goes mainstream and ad fraud goes up, removing their only selling point.

The only real solution here is to just admit that view-based or click-based advertising on the web is flawed (and will always be vulnerable to fraud) and get rid of it, replacing it with time-based advertising where you pay for an ad to stay up for a certain period of time regardless of how many clicks or views it gets, making it immune to fraud and reducing the need for privacy- violating analytics because the only analytic that matters is "do we make more money?". Of course, this _real_ solution wouldn't allow opportunistic middlemen to make money out of thin air, so that's why we have Brave instead.

<comment><USER21> > by replacing them their own ads backed by a shitty cryptocurrency

This is not true at all, and it has been talked enough here but I figured I'd explain it again. The Brave ads are opt-in, for people who would like to earn "shitty" cryptocurrency by clicking on them.

They are fixing the ad issue by blocking the ads and letting you "pay" the sites with BAT tokens. This can be done by a one-time donation or automatically each month (based on your attention). Reason for the Basic Attention Token name.

<comment><USER22> Thought I should point out you receive BAT for viewing the notifications. Not for clicking on them.

[https://support.brave.com/hc/en- us/articles/360026361072-Bra...](https://support.brave.com/hc/en- us/articles/360026361072-Brave-Ads-FAQ)

</comment></comment></comment><comment><USER23> I am an enthusiastic Brave user - but seeing stories like these make me wonder if I'd be better off configuring Firefox to be more secure/private and using that.

As a privacy and transparency advocate, it disappoints me to see Brave fail to pass the test, especially considering that privacy and transparency are supposed to be the browser's MO.

<comment><USER24> Not too difficult to configure Firefox imo. My recommendations on plugins:

* HTTPS Everywhere: [https://addons.mozilla.org/en-US/firefox/addon/https-everywh...](https://addons.mozilla.org/en-US/firefox/addon/https-everywhere/) * DuckDuckGo Privacy Essentials: [https://addons.mozilla.org/en-US/firefox/addon/duckduckgo-fo...](https://addons.mozilla.org/en-US/firefox/addon/duckduckgo-for-firefox/) * uBlock Origin Firefox: [https://addons.mozilla.org/en-US/firefox/addon/ublock-origin...](https://addons.mozilla.org/en-US/firefox/addon/ublock-origin/)

<comment><USER25> Privacy Badger[0] too. Multi-account containers[1]. I also agree with the Decentraleyes[2] suggestion.

[0] [https://addons.mozilla.org/en-US/firefox/addon/privacy- badge...](https://addons.mozilla.org/en-US/firefox/addon/privacy-badger17/)

[1] [https://addons.mozilla.org/en-US/firefox/addon/multi- account...](https://addons.mozilla.org/en-US/firefox/addon/multi-account- containers/)

[2] [https://addons.mozilla.org/en- US/firefox/addon/decentraleyes...](https://addons.mozilla.org/en- US/firefox/addon/decentraleyes/)

</comment></comment></comment><comment><USER26> Brave has to pay salaries - I suppose this is better than selling user data. Chrome is subsidized by search and Firefox gets money from Google.

The revenue model for browsers is fucked up.

<comment><USER27> Ironically there's only one browser with a sane business model and it's Safari. You have to buy an Apple product to use it. Simple.

That's probably why it's the only mainstream browser, outside of obscure open source browsers like Falkon and Gnome Web, that doesn't have any built-in ties to third party services.

<comment><USER28> Apple gets billions and billions each year to make Google the default search engine in Safari on iOS and Mac OS. (reported to be 12 billion in 2019 [1])

Apples privacy efforts and signaling are motivated by differentiation to Android/Google and are mostly just marketing targeted at increasingly privacy- aware consumers. Not some value judgement. (in my opinion)

[1] [https://fortune.com/2018/09/29/google-apple-safari-search- en...](https://fortune.com/2018/09/29/google-apple-safari-search-engine/)

<comment><USER29> Also increasingly apple is moving to compete in services. Every incentive in the world will be to adopt the practices the other guys do. Putting your trust in apple right now on the privacy issue seems pretty misguided.

</comment></comment></comment></comment><comment><USER30> Most comments here are blowing things way out of proportion. Links are in no way getting modified by the browser. The issue is that when someone types binance.us(or a few other brave affiliate sites) in the address bar, the top recommended link comes to be one with the referral link appended. When enter is hit that link is automatically selected(normal chromium behaviour) and page opens with the url with referral code. This sure is problematic. As Brendan has said[1] it sure was not the right way to do it. Again, the links in pages are in no way modified as people are trying to portray.

[1] [https://twitter.com/BrendanEich/status/1269317625915400192](https://twitter.com/BrendanEich/status/1269317625915400192)

</comment><comment><AUTHOR> OP here. Brendan Eich is now publicly calling me a liar, though he's inexplicably failed to detail the claimed lies. I've asked him to do so. [https://web.archive.org/web/20200606232839/https://twitter.c...](https://web.archive.org/web/20200606232839/https://twitter.com/BrendanEich/status/1269403116740308993)

<comment><USER31> Your title is, at the very best, poorly phrased. At worst, intentionally misleading. Whether or not you approve of what they are doing, and regardless of whether what they are doing is moral - they are not "hijacking links". That practice of "hijacking links" _specifically_ means re-writing/modifying _existing_ links on pages that you don't control (hence the term "hijacking" \- or taking what belongs to someone else).

A URL _typed_ in an address bar is not "a link". It's a typed URL.

Curiously, your article seems to describe what is happening pretty accurately so it's hard to see why you chose the title you did (other than to be clickbait-y and sensationalist - you are selling a book on the topic after all).

Again, that's not to excuse what they are doing. At all. But link hijacking has come to have a specific meaning and this isn't it.

TL;DR - Link is short for hyper-link. There are no hyper-links involved here.

<comment><USER31> I know I'm not supposed to reference downvotes on HN. But I would like to kindly ask downvoters to explain _why_ what I've written is incorrect.

<comment><USER32> Regardless of whether the terminology is technically correct, it's easily understood what the meaning is. Modifying links and modifying typed URLs are equally bad, so your claim that it is sensationalist doesn't make sense. Your post is pure pedantry that does not make any substantive contribution.

<comment><USER31> >Modifying links and modifying typed URLs are equally bad

Sorry, but you're plainly wrong.

"Modifying links" implies another victim in the scheme: The party who authored the link in the first place. It implies that a third party is being deprived of their affiliate revenue because the link they wrote was "hijacked".

That's not what happened. No one is having anything _stolen_. If that distinction is not important to you.... then I don't know what to say.

Words matter. Never more so than when making serious accusations.

<comment><USER32> They are equally bad because in both cases _the user_ is taken to a place that they _did not intend to go_. They are not bad because something is getting "stolen", they are bad because the user is no longer in control. That is a significantly more concerning aspect than someone not receiving affiliate revenue, which to be completely honest, I couldn't care less about.

<comment><USER31> So a third party _also_ being wronged does not change anything because... you don't like the third party? Classy.

Do you have an actual argument or is that it?

Edit: This has got to be the first time I've seen an HN'er _defend_ someone adding a clickbait title to their submission. A submission that points to _their own_ marketing website. The guy is selling a book. Don't be so naive.

The accusation stands on its own without sensationalizing it.

<comment><USER32> I simply don't believe that mistakenly saying "links" instead of "URLs" is sensationalist. The author is not engaging in clickbait by substituting that word. A layman understanding of the web will not make a distinction between a URL and a link. The issue is clearly the fact that the browser _deceives the user_ , whether it is changing a link in a page or changing the URL typed in the address bar, these are both equally deceptive from the user's point of view.

Hell, I have a reasonably good knowledge of the terminology and I will regularly ask people to "send me links" or "send me URLs" interchangeably. It's just needlessly pedantic.

<comment><USER31> He's a _technical writer_ (by profession) directing traffic to his blog dedicated to _marketing_ his _technical book_. Don't be naive, he knows exactly what he's doing.

Furthermore, I responded directly to the OP when he pondered aloud why he would be accused of lying. I explained. Then you jumped on me for being pedantic and posting non-substantive comments? Okay, seriously?

Speaking of which, why _did_ the OP post the comment to HN about Eich calling him a liar, if not to stir up controversy (and traffic)? That's highly unusual. Did you ever consider that Brave is not the only one selling something?

>The issue is clearly the fact that the browser deceives the user, whether it is changing a link in a page or changing the URL typed in the address bar, these are both equally deceptive from the user's point of view

That's simply not true. They are not equally deceptive.... _at all_. A web browser surreptitiously re-writing third party web-content is next level evil. The implications would be absolutely _astronomical_.

It's not the same and you know it.

</comment></comment></comment></comment></comment></comment></comment></comment></comment><comment><USER33> It's as if Brave is performance art put on by Mozilla's advertising department.

<comment><USER4> he updated the article and quoted you in it :D

<comment><USER33> Nice catch, wouldn't have noticed otherwise.

</comment></comment></comment><comment><USER34> Wow. They appear to have a death wish.

If your entire raison d'etre is privacy and clear stated model then one covert shady move like this can wreck trust irrevocably.

If they had just declared that their model includes inserting affiliate codes then that would all be fine.

The codes aren't the issue here its a violation of trust. If I'm OK with mystery monetization stuff happening behind the scenes I'd be using Chrome.

<comment><USER35> Except mystery monetization is a pre-req for heavily maintained software that you don't pay for.

I'd rather the mystery be "affiliate deals" than "selling my data".

Mozilla's mystery monetization is getting paid lotsa dollars to make Google the default search engine in Firefox. And Google can only afford that because of ads. If Firefox integrated ad-blocking by default like Brave did, Google might be inclined to pull that deal, as it is paid for with ads.

I trust the company with that conflict of interest less than I trust Brave.

<comment><USER34> Very valid point :)

</comment></comment></comment><comment><USER36> You know how Firefox has a deal with Google where if you use Firefox and do a Google search and click on an ad, Firefox gets a cut of the ad money? This is sort of like that: Binance and Brave have a deal[1] where Brave promotes Binance from an in-browser widget[2], and in return Brave gets affiliate money whenever a Brave user signs up for Binance (whether by clicking on the widget or not).

In cases of affiliate hijacking, the company (and not the user) is the victim because the company is made to pay referral money when the hijacker didn't actually refer the customer. This didn't happen here because, again, Brave and Binance have a deal and Brave is operating according to that deal.

I suppose editing URLs out from under people is a little weird, so now that there's been an outcry they'll probably change it to identify Brave users by UserAgent or by injecting an HTTP header or something.

[1] [https://twitter.com/BrendanEich/status/1269289242905042944](https://twitter.com/BrendanEich/status/1269289242905042944) [2] [https://cointelegraph.com/news/brave-browser-brings- binance-...](https://cointelegraph.com/news/brave-browser-brings-binance- integration-to-all-desktop-users)

</comment><comment><USER37> This is similar to when Pinterest did this back in 2012 and very quickly made large amounts of money but were crushed by public opinion and quickly shut the practice down. It'll be interesting to see how Brave responds.

1\. [https://www.google.com/amp/s/www.theverge.com/platform/amp/2...](https://www.google.com/amp/s/www.theverge.com/platform/amp/2012/2/8/2783807/pintrest- skimming-affiliate-links)

<comment><USER38> Ironic that you posted an AMP link

[https://www.theverge.com/platform/amp/2012/2/8/2783807/pintr...](https://www.theverge.com/platform/amp/2012/2/8/2783807/pintrest- skimming-affiliate-links)

<comment><USER39> That's still an AMP link

<comment><USER40> Non-AMP link: [https://www.theverge.com/2012/2/8/2783807/pintrest- skimming-...](https://www.theverge.com/2012/2/8/2783807/pintrest-skimming- affiliate-links)

</comment></comment></comment></comment><comment><USER41> Interesting discussion. I'm probably not the only one who started using Brave (on the side) because it's being put forward as one of the fastest/leanest browsers around. And I need something like that for the hybrid Win10 PC I chose as a cheap tablet alternative that will also run desktop software. I can't attest to "leanest", but it is indeed the only browser that works reasonably well with something like Facebook on that tablet. Anything else becomes unbearably sluggish after a short while, an MS Edge just has a too much crippled UI (and general incapability to function with my filtering proxy, Privoxy).

I see lots of remarks about FF being slow. It's a memory hog indeed (can't use it on my tablet because of that), but so are Chromium-based browsers, and FF is the only one I know where you can trigger a GC run that actually has some effect. I combine that with "The Great Suspender" extension to keep things manageable. Funny enough it was by far the fastest a year or 2 ago on what seemed a reasonably representative HTML5 benchmark that has been taken offline since. It's also the only option to have an up-to-date browser on my Mac that I've been keeping under OS X 10.9.5. That alone earns them my support...

I do wonder why WebKit2 isn't been used more; outside of the Apple universe (where it's sadly linked to the OS version) the only "official" browser I know of that uses it is Gnome's epiphany which isn't exactly cross-platform. My tests with the rebooted QtWebkit suggest that the older (but maintained, AFAIK) WebKit codebase superior in performance and resource use to Chromium ("WebEngine") for sites that don't require newer, unsupported features (and as an embedded HTML renderer).

</comment><comment><USER42> This article is highly inflammatory.

These are not random websites they are hijacking for affiliate money like the article purports. These are all advertisers / partners that appear on the new tab landing page when you sign up for Brave rewards...This is affiliate tracking for advertisements baked into the browser itself not some nefarious scheme to skim off someones else's traffic.

<comment><USER6> This is not on the new tab page, this is hijacking links typed directly into the address bar. "If you're using Brave and try to go to the Binance crypto exchange, Brave hijacks the Binance link you typed in, and autofills with its own affiliate code."

There's an animated screen capture of this happening here: [https://twitter.com/cryptonator1337/status/12692014801055784...](https://twitter.com/cryptonator1337/status/1269201480105578496)

<comment><USER43> Hate it when people do this. Have you actually even tried it ? It just shows the referral link suggestion at the top, it doesn't hijack the link you typed in. You're still free to open the original link. Of course the twitter post cleverly hides this by hiding the list of suggestions. Now we have this long flaming thread for something that's totally normal and perfectly acceptable.

<comment><USER44> Firefox: type in Binance.us and immediately press enter - no referral code.

Chrome: type in Binance.us and immediately press enter - no referral code.

Brave: type in Binance.us and immediately press enter - yes referral code.

<comment><USER22> Looks like their plan for resolving the outrage is an opt-in setting.

[https://twitter.com/BrendanEich/status/1269404443818119168](https://twitter.com/BrendanEich/status/1269404443818119168)

</comment></comment></comment></comment></comment><comment><USER45> Don't they understand they're undermining the entire point of affiliate codes?

This would never be sustainable long-term, it's just dumb and awful for very short-term gain.

</comment><comment><USER46> > "In short run, without sounding Nietzschean, will matters. Patreon's is weak > or corrupt. Ours is not"

What is he, a 'Silicon Valley' character?

<comment><USER19> Life imitates art.

</comment></comment><comment><USER47> Given the Total Information Surviellance from Google this is _relatively_ a non-issue. Nearly anything that meaningfully restrains Google is a net good at this point. Getting bent over this is like people who dismiss Signal for not having perfect e2e- purists that are oblivious to what is actually happening in the world.

</comment><comment><USER48> How could they not realise this would turn away their target audience?

<comment><USER46> What IS their target audience, though? I always vaguely thought it was the crypto people, who as a community are quite accepting of weird slightly shady stuff. I could never really figure out who this product was for tho.

<comment><USER44> People that are too lazy to install add-ons or that want some pocket change in tokens?

The shills say "privacy", but it's not any better than Firefox with add-ons (and worse because using it adds to the Chromium ecosystem which Google ultimately controls), and you have to KYC if you want to withdraw the tokens.

</comment></comment></comment><comment><USER49> I use and love Brave (since beta). As usual HN making a bigger deal out of nothing. They gotta make money, and it's not like they are stealing from anyone else (replacing ref links).

Chill out.

<comment><USER50> This. HN is so entitled - I want the perfect thing, then complain about them trying to be sustainable.

</comment></comment><comment><USER51> Bummer! I got the Tracking Token Stripper [1] to help remove stuff like this. Wonder what the result is if I use this and Brave — which one wins?

1: [https://chrome.google.com/webstore/detail/tracking-token- str...](https://chrome.google.com/webstore/detail/tracking-token- stripper/kcpnkledgcbobhkgimpbmejgockkplob?hl=en)

</comment><comment><USER52> Vivaldi is my "third" browser. I have it setup with maximum privacy settings and extensions.

[https://vivaldi.com](https://vivaldi.com)

"Vivaldi is a freeware, cross-platform web browser developed by Vivaldi Technologies, a company founded by Opera Software co-founder and former CEO Jon Stephenson von Tetzchner and Tatsuki Tomita."

</comment><comment><USER53> I seem to collect browsers like some people collect pokemon. Right now I am typing this in firefox and have twitch open in chrome in my second monitor. I use Edge for work accounts, Waterfox for times when I want to use a couple old addons that were never ported over, and opera and vivaldi around just to see how they measure up.

</comment><comment><USER54> Filed under "Things people do that are 'perfectly legal' and reprehensible at the same time."

</comment><comment><USER55> I get that this is a bad look but practically speaking it's not that different from Google paying Mozilla for every search query that comes in with a FF User-Agent. Article reads more like personal beef

</comment><comment><USER56> Typing this on Brave for iOS. What is the best browser for iOS from a privacy standpoint? Firefox doesn't have uBlock Origin. I don't trust Microsoft Edge or Chrome. What do you suggest?

<comment><USER57> Um Firefox not only has uBlock origin, it's way better than Chrome's version. FF is definitely way better.

<comment><USER44> Apple doesn't let it's users have the freedom to install add-ons.

<comment><USER30> You can install Firefox Focus[1] on iOS and enable it as a content blocker in safari settings. It works really well as an ad-blocker.

[1] [https://apps.apple.com/us/app/firefox-focus-privacy- browser/...](https://apps.apple.com/us/app/firefox-focus-privacy- browser/id1055677337)

</comment></comment></comment></comment><comment><USER58> please brave dont f this up. we really need you!

</comment><comment><USER59> Project plan for a new browser:

1\. Copy Brave. 2\. Remove everything except the part about paying monthly and supporting websites you visit

Who's with me?

<comment><USER8> Micropayments have failed many times before. I can earn BAT with Brave and donate it to sites without having to sign up and deposit money with a credit card. There is much less friction compared to solutions that came before it.

Andrew Mason is forking Brave and doing some of what you describe. Being associated with Gab and Andrew Mason isn't for everyone.

</comment></comment><comment><USER60> Always a balance with a tradeoff, I'm not sure if to uninstall here or come to terms with the business model.

</comment><comment><USER61> Copied my wallets and removed Brave off all my devices. It only lasted a couple weeks, lol.

</comment><comment><USER62> They began sucking pretty fast. Good riddance.

</comment><comment><USER12> who even use brave on desktop? author completely misses point with alternatives

for Android he recommends only Firefox which is either slow or buggy, but nowhere close to stability and speed of chromium browsers

if you want chromium browser for Android with ublock your only options are Kiwi browser with outdated chromium, shady Russian yandex browser, ungoogled chromium pretty much in alpha or brave which promises extensions by the end of June

</comment><comment><USER63> i'm done with brave.

</comment><comment><USER64> This is a nothingburger. Brave adds its own referrer code to a handful of crypto-related websites, if you type them into the address bar. It doesn't modify other affiliate links, as far as I can tell.

</comment><comment><USER65> You have become the very thing you swore to destroy!

<comment><USER66> Yeah, that's the thing with trust: you shouldn't.

</comment></comment><comment><USER67> bit overblown. It's not all "links", they did the redirect for the autocomplete of "binance.us" and they are correcting it.

[https://twitter.com/BrendanEich/status/1269313200127795201](https://twitter.com/BrendanEich/status/1269313200127795201)

<comment><USER68> It's not just "binance.us", it's common terms like "bitcoin", "btc", "ltc", "eth", etc.

[https://github.com/brave/brave- core/blob/master/components/o...](https://github.com/brave/brave- core/blob/master/components/omnibox/browser/suggested_sites_provider_data.cc)

Eich's tweet worsens things as it omits that fact.

I see there is already a user submitted PR to remove this code: [https://github.com/brave/brave- core/pull/5759/files](https://github.com/brave/brave-core/pull/5759/files)

We'll see how that goes.

<comment><USER69> Wow... that looks to me like they're injecting their affiliate code to some URLs which the user would have to type in manually, like "binance.com", "coinbase.com/join", or "trezor.io/product/trezor-one-metallic". _That 's affiliate fraud_ \-- Brave is not responsible for referring the user to those URLs, so it's inappropriate for them to claim credit for the referral. I'd be shocked if the parties involved didn't terminate Brave's affiliate account upon discovering this.

</comment></comment></comment><comment><USER70> I'm going to have to switch browser AGAIN? Dammit.

Is Opera safe or what shady shit have they done? I haven't used Opera since Opera back in 2006. God I miss the Presto engine and dragonfly.

Can I go back to them or they doing shady stuff?

<comment><USER71> Opera is still proprietary, and, uh, also they got caught doing some stuff involving predatory short-term loans to the impoverished in African countries, not to mention their CEO was _also_ involved in an entirely different Chinese conglomerate that was also involved with fraud and some lending thing.

Oh yeah and if you haven't used it since 2006: Opera is Chromium now, and the company behind it got sold a time or two.

<comment><USER70> what the fuck, whats happening in the tech scene :(

what should I use if I _dont_ want to be in the botnet or scammed and outside of google's mesh

<comment><USER72> I used Opera from 5 to 12, then Firefox till v37, and it's been Pale Moon ever since. Check out the latest release notes. I know I'm not the only one that likes things such as,

>Removed more telemetry code

>Removed the in-browser speech recognition engine and API

>Removed support for the obsolete and unmaintained NVidia 3DVision stereoscopic interface.

Palemoon is Firefox if it were still Firefox instead of feature-for-feature chrome copy for watching encrypted netflix.

<comment><USER73> I would love to be able to use Palemoon, but I just can't get over the fact that it's a single main developer trying to maintain an entire web browser.

That seems like a security nightmare waiting to happen. If I'm wrong about this, please let me know, I really like the idea.

<comment><USER66> Except they don't "maintain the entire browser," rather, they "maintain" a trimmed-down build.

<comment><USER69> I'm not sure what distinction you're trying to draw here. The fact that Moonchild has removed some a few features they don't like from Palemoon doesn't make the remaining codebase meaningfully easier to maintain. They're still left with what is effectively an orphaned codebase, increasingly unable to use patches from mainline Firefox, and subject to unknown vulnerabilities in portions of the codebase which no longer exist upstream.

<comment><USER72> Maybe we're touching the same elephant but we're obviously on opposite ends of it. That's how I perceive Firefox security with all it's crazy new features, old experiments left in, black box DRM that's literally unauditable, etc.</comment></comment></comment></comment></comment></comment></comment></comment>


Access Denied to Apple.com - <AUTHOR> http://www.apple.com/ <comment><USER2> Someone who works for Apple — someone who is probably a lot like you and me — is having a really shitty night. So, I am sending good luck vibes towards Cupertino right now.

Godspeed, Apple friends!

<comment><USER3> If it has been offline for 1 hour now, do you think it is tens or hundreds of thousands of dollars is sales that were not processed in the timeframe.

<comment><USER4> The store was in read-only mode to prep for the new iPhones so the sales loss is already accounted for.

As a side note (and speculation), as compared with other online stores, I don't think the Apple store has the same risks as the other stores (the fact you don't buy the Mac directly from Apple doesn't really affect their revenue).

</comment></comment></comment><comment><USER5> I've seen this same style of error message before. It's the AkamaiGhost CDN. (Look at the Server: header in the response.)

I suppose you could say the server has given up the ghost...

Googling "AkamaiGhost 403" shows that other sites have experienced the same problems with them before in the past, so I wouldn't particularly blame Apple for this.

<comment><USER6> this guy know what's up.

</comment></comment><comment><USER7> A moment of silence for our fellow web developer/sysadmin who is on-call...

<comment><USER8> From now until his death, he will rest in peace no longer.

<comment><USER4> If it gets back online in time, it'll be a story to be told. If not, then :-(

</comment></comment></comment><comment><USER9> I've seen this error before from other sites and it seems to be generated by Akamai rather than the apple.com origin. Does anyone with Akamai experience know under what conditions this message would be returned? Did someone at apple accidentally ACL off the planet?

<comment><USER10> I posted my comment before to the wrong commenter, but: I'm interested in their References -- it looks like each hit is a new hash, so they store that so they can refer to it. I don't know much about this side of stuff so it'll be interesting to know why they do that, or what the upside is of doing it that way...

<comment><USER11> Akamai does indeed give unique reference codes for errors like these. There's a management interface where you can look up more info on what happened for each code, but in my experience lookup time is proportional to the time since the error happened.

</comment></comment></comment><comment><USER12> Here's my guess:

Apple is using Akamai's cloud security service called Kona. They (Apple or their Kona team) pushed a bad config up and now that they know it's a bad config they are pushing a fix-- but it takes 45 minutes to replicate out to all the Akamai edge servers.

I think it's Kona because the 403 Access Denied and the Akamai ref number. Also, I use the same service and always live in fear of something like this happening and taking 45 minutes to undo. There _is_ a staging option...

<comment><USER13> 45min? And people pay for intervals that slow?

<comment><USER6> marketing magic, when you got ATS and only need smart people to set it up in any way you want (yahoo fucking does it) and still go to akamai

<comment><USER14> ATS = Apache Traffic Server I assume?

I still wonder why large companies continue to rely on third-party CDN's like this. It's hardly rocket science to operate a global network of reverse proxy cache servers, particularly when you only have to do it for your own network (i.e. no customer issues).

</comment></comment></comment></comment><comment><USER15> Crap, now I can't stare at pictures of the 6s, wondering if it will be 6s-ful... #applepunsfordays

On a more serious note, it seems strange they wouldn't have failover environments for just such occasions... Maybe @Too is on to something, and this is a new way for big companies to drive traffic to their sites prior to a big launch. Genius.

<comment><USER16> That pun actually made me laugh though. (Impressed that you turned a number and a letter into a full word pun.)

</comment></comment><comment><USER17> Apple usually takes their store down prior to a big event (iPhone 6s pre- orders).

This is the first major event since they integrated the store into their regular website (rather than having the store.apple.com subdomain) Clearly, this is a mistake as they are deploying all the new pre-ordering pages for the iPhone 6s.

</comment><comment><USER18> You are supposed to use the Apple app, not that old web stuff.

</comment><comment><USER19> The white "Access Denied" page is to help you empathize with Jony Ive, still trapped in a white room after all these years.

[https://www.change.org/p/apple-free-jony-ive-from-his- white-...](https://www.change.org/p/apple-free-jony-ive-from-his-white-room)

</comment><comment><USER20> It's back up for me.

</comment><comment><USER21> [http://images.apple.com/](http://images.apple.com/) appears to be still be up though

</comment><comment><USER22> "Siri, can you kill the Apple website"

(oh, shit!)

</comment><comment><USER23> For anyone else who got here late: [http://web.archive.org/web/20150912044113/http://apple.com](http://web.archive.org/web/20150912044113/http://apple.com)

</comment><comment><USER24> Someone violated read-only Friday.

</comment><comment><USER25> Thus operational phase 2 begins...

</comment><comment><USER26> Awaits first journalist to write a glowing story about how "Apple has revolutionised the 'Access Denied' page.

<comment><USER27> When Steve Jobs invented the computer, he envisioned a device which was accessible to anyone, a device to empower revolutionary magical thinking about the possibilities of access. But he also knew the limits of the networks developed by the establishment gray box technology industry and sought to imbue those networks with communication that would speak different, in a way they would understand. Along with Sir Jony Ive, he reinvented the "Access Denied" page by removing the skeuomorphic constraints, distilling them into a flat "Access Denied" message which spoke to everyone, empowering their engagement with their restricted access to unlock unlimited creative potential.

</comment></comment><comment><AUTHOR> The same moment when I was going to buy the new iphone 6s

<comment><USER28> Yeah, pre orders start in just over 2 hours. This might be related to that

</comment></comment><comment><USER29> Who cares?

<comment><USER30> I used to do pager duty for a large consumer-facing company, so this is amusing to me.

</comment></comment><comment><USER31> Does this take down any important service, or just access to Apple's corporate web site?

<comment><USER32> If you consider their store an important service, then yes.

</comment></comment><comment><USER33> The most walled of walled gardens.

</comment><comment><USER34> Funny to find this on the front page on HN, just got notified by Hooks app! Lol

<comment><AUTHOR> Me too!

<comment><USER34> Yeah, this app is really real-time, got you to the frontpage on HN!

<comment><AUTHOR> Yeah, I've posted just after I received a notification from Hooks :) Got lucky

</comment></comment></comment></comment><comment><USER35> Looks like iMessage is down too... someone is having a horrendous night.

<comment><USER36> Works fine here. I think it's on your end.

</comment></comment><comment><USER37> also a reddit discussion about it [https://news.ycombinator.com/item?id=10207403](https://news.ycombinator.com/item?id=10207403)

</comment><comment> github-cat The service seems back to normal now.

</comment><comment><USER38> Killed off the front page as soon as it hit >100 score. Went from being #1 to #148 within ten seconds.

</comment><comment><USER39> It's back up

</comment><comment><USER6> It's back up now, but

RIP CDN / Traffic Management team @ apple.

</comment><comment><USER40> p0wned?

</comment><comment><USER41> Works fine for me. What's the problem here?

</comment><comment><USER42> Certainly this is the work of Microsoft working with Aliens.

</comment><comment><USER43> Now that's what we call innovation.

</comment><comment><USER44> How's this front page material on HN...

Oh no, apple.com is unavailable - breaking news, affects noone?

<comment><USER45> Not for nothing, it's a pretty rare occurrence to see a triple-a company with a white page error on its home domain, like seeing a whale or something.

<comment><USER44> its not the first time for this to occur (to other sites and apple earliar this year atleast) and has been answered by [https://news.ycombinator.com/item?id=10207316](https://news.ycombinator.com/item?id=10207316)

akamai issue and the hash is a time stamp

</comment></comment></comment><comment><USER46> zzzzz, just another pr stunt to pretend the demand is high. Just like hiring actors to stand in line outside the apple store every now and then. Or some sysadmin accidentally forgot to click enter somewhere. Nothing to see, move along.</comment>


Why mental health idealism might not overcome the market - <AUTHOR> http://thenewmentalhealth.org/?p=81 <comment><USER2> As someone who has, and still is struggling a lot with mental health issues, it's immediately obvious how big the gap is between the impact of mental health, and the amount of attention it gets in the media/social circles. The social stigma of mental illnesses are so strong that you rarely hear sufferers of depression, anxiety, bipolar, etc speak out about it, which is exactly the opposite of what needs to happen.

Making it known that you have a mental illness is simply not the same as having a physical handicap (please note I am not trying to downplay the pains of physical handicap or any other illnesses). People simply do not know how to react to mental illness. Or they're incapable of understanding. Many people would like to help their friends in these situations but without proper understanding, it's arguably worse than being a bystander. Comments like "cheer up!", "just get over it!", "it's not that bad" often are not that helpful at all. Even if their struggles seem reasonable to an outsider, the pain that the sufferer feels is very real, and to them, insurmountable. Never mind the fact that the social stigma often means speaking up about these issues means social or professional suicide, resulting in most of us not speaking out about it and feeling hopeless.

Posts about mental health show up on the HN frontpage every once in a while (or more frequently, in /ask), which is a step forward because there is simply not enough awareness on these issues that are so prevalent, especially among the HN demographics. But we still have a lot of work to do.

Side note: Greg Baugues started a community called devpressed[1] for developers struggling with mental illness a while back, and also gave a talk on the topic[2]

[1] [http://devpressed.com/](http://devpressed.com/)

[2] [https://www.youtube.com/watch?v=yFIa- Mc2KSk](https://www.youtube.com/watch?v=yFIa-Mc2KSk)

<comment><USER3> I had the pleasure of listening to a talk by Greg Baugues over a year ago.

It actually triggered the idea for my startup: [http://synaptitude.me/](http://synaptitude.me/)

Essentially, the goal is to provide mental health help/treatment without the need to go to an office, thus reducing the barrier to get help.

Obviously, that's not exactly what you are talking about, but the end-goal, is to build a community around this form of treatment, and remove much of the stigma. The system/program/app we built also makes it really clear to people what issues are, and how to improve them. The clear way our website shows progress/issues helps remove a lot of the mystery and can help users express issues and show progress with loved ones.

We are also looking for people to enter our trial (which we are in the process of organizing): [http://synaptitude.me/blog/now-accepting-trial- participants/](http://synaptitude.me/blog/now-accepting-trial-participants/)

<comment><USER4> <We are also looking for people to enter our trial>

Given that a mere nudge of the mouse on this page pushes you to a "Subscribe" overlay before the reader even gets to read the whole page (with no stated opt-out), I think your response will be a tad muted. (Workaround: click elsewhere on the greyed-out part of the page)

</comment></comment></comment><comment><USER5> >Prejudice, stigma and loss of earning potential meant that the people who experienced mental health difficulty were shunted to the margins of society where we became a social problem to be solved by others spending on our behalf.

It's unfortunate that sharing first hand experience with mental illness incriminates you. A big contributor to the negative stigma has to be that there is little upside and huge downside to being open about personal experience with it (unless you are using it as an excuse for a crime).

<comment><USER6> Incredibly unfortunate.

I have to constantly keep myself in check to make sure that I don't reveal too much about my mental health. The biggest example I can think of is one from recent times where I left a company for what amounted to being made fun of for being "weird" or "crazy". At no point during that employment would there have been an acceptable time to bring up the issues I was having to the folks doing the teasing. It actually got to the point of me going to HR about it, where the head of HR had no idea what bipolar is, despite having a degree in psychology. When I quit, I discussed with my boss and her boss (effectively the CTO) about the problems.. they told me to "grow thicker skin". I then told why it wasn't so simple, to which they took 40 steps back and apologized in, "it was just a joke" fashion.

Fast forward to interviewing, where the question of "Why'd you leave your previous company so soon?" comes up. What am I supposed to say? I can give some well thought out BS reasons, but nothing about that feels right. The situation is unbearably tough and is only getting tougher. I wish there was a way around it, but when competition is built around vapid shallowness, a solution is nowhere in sight.

I try my best to talk about it my own experience with mental health on HN, yet every now and then, I hesitate about how much it'll affect future prospects and end up deleting it, despite good intentions. It's fucking frustrating.

<comment><USER7> I'm sorry you had to go through that. That is extremely unfair. I also hate writing about mental health but in lieu of your last comment... I will not delete this in hopes it helps - at the very least please know you are not alone.

I personally had an employer issue where 'short term disability' could never be approved from insurance for mental health, unless I was at risk of hurting myself or others. So I had to use my PTO for mental health days, according to HR. I was assured by my bosses that I'd be given the same protection as "someone on the team who had cancer", but I suppose that was not true as I was soon let go for running out of time-off when I had to go to a trauma group therapy session. I'm not sure if how they let me go was legal ... but I digress.

I can definitely relate to your post, and my advice would be to tell new employers the truth: you had / have some [chronic] health issues, and unfortunately had to quit to place your health first for some time. I understand a hiring decision or social factors may be affected by this. The fact that 1) we have to evaluate that as a risk in the first place, or 2) anticipate explaining details of our health, is outright ridiculous and you have my sympathy.

if your employer/HR seems clueless or is not giving you the feedback you'd expect, perhaps explain how your symptoms affect your job instead of only telling them a diagnosis. (Edit: It does sound like you'd tried that with your boss, sorry if this is not good advice.) Diagnosis are thrown around so much in the media, after all, who knows what thoughts about "depression" or "bipolar" are conjured in different people?

I hope that in time the stigma will change so people like you and I can have more acceptance, less teasing, and more reliable rights in the workplace (and in general, really).

<comment><USER6> Genuinely appreciated. I feel you, man.

When I spoke to HR, it was a very serious conversation. Essentially, the conversation was essentially me asking for help in avoiding distractions. There were tons at that place, so my request was just for some tiny modifications of the team with some hope that there would be an understanding. I explained how bipolar worked, what it did, etc. Apparently she never actually talked about it with anyone besides her boss. When I left, I was strongly considering filing a discrimination suit, but eventually decided not to as my mood stabilized.

Thing is, though, it seems that these problems are entirely systemic. Every place I've worked at has been like this. New social groups I've been a part of have been the same way. It's frustrating, but the silver lining is that the groups that I get a long with, I get along with /very/ well. Perhaps more so than other social groups I've seen.

I don't want to say it gets better. It won't. All we can do is take our medicines, understand how our mental processes work and act accordingly. Considering this is all we have, we can't give up and can only work on improving ourselves, despite our own push back.

<comment><USER7> > the conversation was essentially me asking for help in avoiding > distractions.

> All we can do is take our medicines, understand how our mental processes > work and act accordingly.

I definitely know that feel. I do think that things will get better socially over time, but perhaps I'm too much an optimist, who knows :)

</comment></comment></comment></comment></comment><comment><USER8> My impression is that there's a fairly vicious catch-22 at work here; there isn't a substantial dialog in our culture about mental health issues "from the inside," and as a result, people with said issues aren't accustomed to identifying as "people with mental health issues" in the same way as they might identify as "person with non-standard sexual orientation" or "person into such-and-such sport." And as a result, there's no one to have a dialog about mental health issues from an insider standpoint, and around we go again.

I would guess that a print magazine is not an agile enough platform to jump- start such a dialog effectively. Obvious comparison; tumblr, among its multitude of various unusual communities, hosts a thriving little culture of mental illness thought, almost entirely derived from the freely available writing of non-professionals with first-person experience living with such conditions. A zero-buy-in medium is much friendlier to people with little initial commitment to the subject; a decentralized medium with no gatekeepers is able to fluidly adapt to the changing opinions of its user-base.

</comment><comment><USER9> If there's no market in the gap, consider building it up from small, using Patreon or similar. Avoid anything that gives you one burst of money up front and then goes away, whether it's the government or Kickstarter. Monthly subscription, or monthly donation, mean that you can match your expenditure to your income. It will also mean starting zine/indie/volunteer and not big and shiny. The upside of this is that you can grow credibility the slow way.</comment>


How to Survive the Next Wave of Technology Extinction - <AUTHOR> http://www.nytimes.com/2014/02/13/technology/personaltech/how-to-survive-the-next-wave-of-technology-extinction.html?ref=technology

<comment><USER2> Good article, great advice. Scary how closely I follow that advice, varying only in sometimes using a Ubuntu Linux laptop. I also chose a Samsung Galaxy 3 rather than an iPhone because I already have an iPad, and also having an Android device is fun.

All great points about Amazon, Dropbox, and Evernote - they all deserve the money I pay them.</comment>


Russians seek answers to central Moscow GPS anomaly - <AUTHOR> https://www.yahoo.com/news/russians-seek-answers-central-moscow-gps-anomaly-091145932.html <comment><USER2> You might want to read an article [1] (automatically translate from Russian) explaining what is possibly going on.

[1][[https://translate.yandex.ru/translate?url=https%3A%2F%2Ftjou...](https://translate.yandex.ru/translate?url=https%3A%2F%2Ftjournal.ru%2F35996-pochemu- kreml-vo-vnukove-grigorii-bakunov-o-moskovskoi-bede-gps&lang=ru-en)]

</comment><comment><USER3> Reminds me of China's use of GCJ-02 instead of WGS-84 (the international standard for geodetics). GCJ-02 intentionally obfuscates coordinates to a random degree, for "national security" purposes. [1]

[1]: [https://en.wikipedia.org/wiki/Restrictions_on_geographic_dat...](https://en.wikipedia.org/wiki/Restrictions_on_geographic_data_in_China#GCJ-02)

</comment><comment><USER4> People might be surprised by this but GPS jammers are widely available, here's an article about a truck driver in New Jersey who got caught with one 3 years ago:

[http://www.nj.com/news/index.ssf/2013/08/man_fined_32000_for...](http://www.nj.com/news/index.ssf/2013/08/man_fined_32000_for_blocking_newark_airport_tracking_system.html)

So it's not like the Kremlin has started using some highly sophisticated countermeasures, I bet you can order GPS jammers from Alibaba.

<comment><USER5> If, as suggested by the article, it's acrively telling you you're somewhere else, that's an order of magnitude more sophisticated than the alibaba jammers which truckers use to just stop their trackers.

<comment><USER6> This might be accomplished by something no more sophisticated than a repeater, they're cheap and readily available to provide GPS location inside buildings. Simply stick an antenna on the roof and the indoor transmitters will cause indoor devices to resolve the location of the roof antenna.

I wonder if the same principle could be used to pipe an authentic signal a few miles then amplify it sufficiently to be preferred by nearby devices

</comment></comment></comment><comment><USER7> They are spoofing Moscow airports coordinates, which suggests it's an anti- drone measure (usually drones have no-fly zones pre-installed in the firmware).

<comment><USER8> The most interesting takeaway is that the US government managed to get their governmental buildings added as no-fly zones to the drones, but the Russian government couldn't get their no-fly zones added.

<comment><USER9> Or, knowing the Russian penchant for secrecy surrounding the locations of government buildings and installations, they may have decided to not even try. Kind of like the way that plat maps for Soviet cities were intentionally obfuscated so as to confuse intelligence agencies (and local drivers).

<comment><USER8> The location of buildings in moscow is pretty well-known, though. But there have been also discussions in other countries about trying to get governmental buildings added to the no-fly list for drones, and having issues with that, so it might actually be the reason.

</comment></comment></comment></comment><comment><USER10> Seems like a case where everyone pretty clearly knows what the problem is, and who is causing it.

</comment><comment><USER11> Doesn't Russia have their own GPS system as well? (GLONASS)

<comment><USER12> They're not worried about drones running off of GLONASS...</comment></comment>


First detection of ringing of newborn black hole: Testing the no-hair theorem - <AUTHOR> https://arxiv.org/abs/1905.00869 <comment><USER2> It all began with Astronomer John Wheeler, who coined the term "black hole" nearly 50 years ago, and who famously said that "black holes have no hair" because of their simplicity.

"Hair" is used as a colloquial term among physicists as a stand-in for any other measure needed to describe a black hole, apart from the traditional three-quantity model: mass, angular momentum (how fast they spin) and electrical charge.</comment>


The 10 Coolest Steampunk Gadgets Ever - <AUTHOR> http://www.coolest-gadgets.com/20080613/the-10-coolest-steampunk-gadgets-ever/#more-14599

<comment><AUTHOR> Submitted because of the first entry of the ten... it's the steampunk Model M IBM keyboard found here:

<http://steampunkworkshop.com/keyboard.shtml>

</comment><comment><USER2> about half of those are action figures.

action figures != gadgets

steampunk is cool though.</comment>


Laconic: A Sane Method of Generating DOM Content in JavaScript - <AUTHOR> http://joestelmach.github.com/laconic/

<comment><USER2> Just for fun, here's my version from 2006:

[http://mg.to/2006/02/27/easy-dom-creation-for-jquery-and- pro...](http://mg.to/2006/02/27/easy-dom-creation-for-jquery-and-prototype)

It's based on Bob Ippolito's version from 2005. :-)

The comments on the post have a few other interesting implementations that others contributed.

At the time I got pretty excited about this idea, but I abandoned it after a while for performance reasons. I was building large DOM structures and it was really slow. I knew that innerHTML was faster, so I tried keeping the same syntax and generating HTML from it instead of DOM insertions - and it was almost as slow that way!

Then I realized that it was just the sheer amount of JavaScript code being run that was slowing it down. I changed my code to build HTML strings with array pushes and a join at the end and then innerHTML to insert, and it was much faster.

Of course, JavaScript has gotten a lot faster since then (at least in new browsers!), so the more code-intensive techniques may be more practical now.

<comment><AUTHOR> Thanks for sharing.

JavaScript has come a long way, even from 2006, yet most developers still have the mindset that this sort of thing can't perform well. What we're left with are solutions that are more complex, and perform similarly for most applications.

</comment></comment><comment><USER3> This is fine for small, one-person projects, but if you generate DOM content in your JS views it __will __come back to bite you in the ass once you hit a certain size. The first time you need to bring in a designer, or integrate a static mockup from a designer, you'll be wishing you used a template engine.

You wouldn't embed database queries into your view controllers, so why would you couple your html to your javascript?

<comment><AUTHOR> Thanks for the tip, but I've had much success using this method on teams of 5+ developers and a full-time designer.

<comment><USER3> Obviously you should do whatever works for your team, and I'm not commenting on the quality or necessity of your framework. In my opinion, it's just much easier to edit well formatted markup, verbose as it may be, than wading through a forest of $el and appendTo and such. Not to mention, hiring a talented visual designer that knows html & css is much easier than finding one that knows their way around a client-side MVC framework. Unicorns and all that. To each his own.

</comment></comment></comment><comment><USER4> Your API will explode violently in IE < 8 || Quirks. This is because of gratuitous use of `setAttribute` along with `Array.prototype.slice.call` (dirty hack)[0]. IE < 8 || Quirks already treats HTML attributes and DOM properties identically[1], so really, DOM properties are preferred. More standards-compliant environments will reflect the property value in the corresponding attribute value (if possible).

Using `Object.prototype.toString.call` is also a pretty dirty hack, especially to detect an "array". I think `typeof obj === "object" && obj.length` would suffice, even if certain false positives like string objects leak through.

[0]: <http://i.imgur.com/RNBYd.png>

[1]: [http://msdn.microsoft.com/en- us/library/dd347148(v=VS.85).as...](http://msdn.microsoft.com/en- us/library/dd347148\(v=VS.85\).aspx)

<comment><USER5> The "Object.prototype.toString.call" solution is guaranteed to work according to ECMA-262, and will only return true for a real Array instance (not something masquerading as an Array):

Object.prototype.toString ( ) When the toString method is called, the following steps are taken:

1\. If the this value is undefined, return "[object Undefined]".

2\. If the this value is null, return "[object Null]".

3\. Let O be the result of calling ToObject passing the this value as the argument.

4\. Let class be the value of the [[Class]] internal property of O.

5\. Return the String value that is the result of concatenating the three Strings "[object ", class, and "]".

<comment><USER4> That may be, but it's poison for host objects. In older IE and Opera builds, `"[object Object]"` comes up often, even for host methods.

This is because there is no defined standard for `toString` results of host objects.

</comment></comment></comment><comment><USER6> I simply generate global functions corresponding to tags, so my stuff looks like this:

      div(span('hello world')).inject(document.body);

Very simple to do and even simpler to use.

<comment><AUTHOR> Many would frown upon polluting the global name space with functions corresponding to all known HTML tags.

<comment><USER7> If you end up wrapping your code in an immediately called lambda anyhow I'm sure it would be fine.

<comment><USER8> Sort of, but there are some tags you probably don't want to pollute your own top-level namespace with, like a, b, i, object, p, q, and s. There's at least one tag (var) which is not allowed as an identifier on its own.

<comment><USER9> I think 'a' and 'p' are the only ones among those you'd actually want. I could probably live with with those limitations.

<comment><USER9> Now that I think about it, that might break a few sortFunction(a,b) {//do stuff with a and b} type functions of mine...

<comment><USER8> No, it won't break them; it will just make them confusing to read. The scope of the function arguments would be more local, so they would hide the declarations further up the scope chain.

What's more of a problem is if you have something like this: <https://gist.github.com/2499913>

The problem is that the "var p" in the for loop will be hoisted to the top of the scope, and so when you call p() in the first line, it will actually be undefined.

</comment></comment></comment></comment></comment></comment></comment><comment><USER10> This is really neat. The coolest part is being able to register your own "tags" which take any arguments you want.

The problem I see is that this only works for "all known HTML tags." If you want to use custom tags, like <template> (I believe that's what meteor uses), this won't cut it since it uses $.el.tagname syntax, every tag has to be loaded into the $.el object.

How about a very similar, more jQuery-like syntax instead:

       $.el('template', [
         $.el('div', {'class' : 'foo'}, [
           //other children here
           //so basically, the last arg is always an array of children
         ]
       ]);

<comment><AUTHOR> Though I did a poor job at documenting it, $.el is actually a function that accepts a tag name as the first parameter. The following two snippets are equivalent:

      $.el.div({className : 'foo'});

      $.el('div', {className : 'foo'});

<comment><USER10> That's awesome! Yeah I see it now in the source's comments. Thanks for pointing that out; I'm sold.

</comment></comment></comment><comment><USER11> Even more laconic: <http://coffeekup.org/>

<comment><USER12> We use this for a mobile app and it's very nice. Haven't run into any issues, at least so far.

</comment></comment><comment><USER13> Similar approach to what we took.

[http://blog.fastmail.fm/2012/02/20/building-the-new-ajax- mai...](http://blog.fastmail.fm/2012/02/20/building-the-new-ajax-mail-ui- part-2-better-than-templates-building-highly-dynamic-web-pages/)

Used the CSS syntax to easily set class/id on a newly created tag.

Benchmarks included to show it's just as fast as innerHTML on modern browsers.

</comment><comment><USER14> It's really boring to write appendChild again and again.. Here's my idea(as a begginer), just converts json(in CoffeeScript) to html string. <http://docview.cnodejs.net/projects/json2page/show.html?html>

</comment><comment><USER15> I did something similar here:

[https://github.com/petehunt/htmldry/blob/master/demos/events...](https://github.com/petehunt/htmldry/blob/master/demos/eventsite/demo.coffee)

It's a little more HAML-inspired though.

</comment><comment><USER16> Another very cool take on this idea: <https://github.com/nathansobo/space-pen>

</comment><comment><USER17> Similar library with namespace support (SVG, MathML):

<https://github.com/mal/watson>

</comment><comment><USER18> Here's another one I did: <https://github.com/insin/DOMBuilder/>

It also allows you to generate HTML strings from the same code and create templates, with template inheritance, using the same sort of syntax.

</comment><comment><USER19> That looks ugly to me.

I much prefer CoffeeScript, because plain JS makes me mad, and CoffeeKup (<http://coffeekup.org/>) for generating DOM content.

</comment><comment><USER20> See also jquery-haml: <https://github.com/creationix/jquery-haml>

</comment><comment><USER21> In what way is this better than writing HTML? And just using innerHTML, outerHTML etc?

It's a serious question. What benefit is there to doing this?

The only thing that came to mind is now you have the dom node so you can bind events to it. But you're not going to be doing that everywhere. So why make things more complicated?

</comment><comment><USER22> Clever DSL. Thanks for sharing.

</comment><comment><USER23> i don't understand the appeal of this when there's tons of client side js templating options (handlebars, jade, haml-js,...) that result in far more readable code than a $.el. prefixathon

<comment><AUTHOR> While I agree the $.el prefix is annoying, I don't believe it has a negative effect on readability. For me, templates are just another level of unneccesary indirection.

</comment></comment><comment><USER24> This is pretty, but unfortunately the only performant way to generate dom elements in javascript is with HTML. HTML parsing is orders of magnitude faster in most browsers.

How about a library like this to generate a string of HTML instead of dom elements?

<comment><AUTHOR> While I don't entirely agree with your first statement, you could just grab the outerHTML instead of appending the element directly to the DOM:

      $.el.div($.el.span()).outerHTML

<comment><USER24> Seems like a reasonable solution.

My first statement was certainly true in the previous generation of browsers, including IE 7. I'm not sure about more modern browsers. What basis do you have for disagreeing?

Refer to:

<http://www.quirksmode.org/dom/innerhtml.html>

<comment><AUTHOR> I'm only disagreeing with the use of the word 'performant', and the popular viewpoint that any solution that isn't as fast as possible can't be labeled as such.

</comment></comment></comment></comment><comment><USER25> Does anyone have a recommendation for a not-too-bloated template engine? I'm going to be building a small-business Web site to display products from a MySQL database and possibly offer shopping-cart functionality.

Thanks!

<comment><USER25> Oh well. Guess not.</comment></comment>


Collect Your Company Knowledge on Autopilot with OneBar - <AUTHOR> https://nohq.co/blog/collect-your-company-knowledge-on-autopilot-with-o/ <comment><USER2> Great idea, bad execution.

This is a walking security nightmare. Indefinite access to a company's Slack and the data is moved to another company's servers you have no control over. Even with Slack channel "sandboxing", you're still handing over a massive amount of trust to Slack and OneBar.

If this had the ability to be self-hosted, that would be the better solution.

<comment><USER3> Isn't that the case with pretty much any Slack bot though?

</comment></comment><comment><USER4> It's pretty surprising that a service with access to all of your internal Slack conversations doesn't have a privacy policy on their website. Makes me wonder to what extent they've thought through issues like GDPR.

<comment><AUTHOR> There is: [https://onebar.io/privacy-policy](https://onebar.io/privacy-policy)</comment></comment>


Google Health coming tomorrow: Electronic Medical Records (EMR) for everyone? - <AUTHOR> http://googlesystem.blogspot.com/2007/08/google-health-prototype.html

<comment><USER3> Bosworth's a tremendously smart guy. The "Health URL" concept is a winner. Healthcare needs Google, but are they ready for it? It's going to be a very interesting story.

</comment><comment><AUTHOR> I've consulted with two medical practices on implementing EMR systems in the last few years. The systems that are now available (at least the ones I've looked at) are rather old-technology - not web-based, don't allow for patients to access their records themselves, etc. This new Google service, if it works as well as it might, could really radically change all of this - <USER2> if practitioners can use it. The next thing, then, is to tie it into the billing systems used by practitioners, etc... opportunity?</comment>


WakeMate Helps You Get a Good Night's Sleep - <AUTHOR> http://crenk.com/wakemate-helps-you-get-a-good-nights-sleep/

<comment><USER2> Sockpuppet for insomniamedia, crenk.com spammer <http://news.ycombinator.com/submitted?id=insomniamedia> <http://news.ycombinator.com/submitted?id=insomniamg></comment>


What To Look For In A Technical Co-Founder - <AUTHOR> http://jasonlbaptiste.com/startups/what-to-look-for-in-a-technical-co-founder/ <comment><USER2> As a non-technical person with two technical co-founders, I found this to be a great list. Here are a few more from my experience as the non-technical founder:

1\. The ability to explain things in simple, non-technical terms, even though the issues are usually neither of that. My company builds really cool things -- I need to sell those things to keep it alive. Without co-founders who can help me understand the details and speak at intelligently about our technology, I couldn't do half the pitches I do.

2\. The willingness to do technical work "beneath them.". It's grand if your partner is a super talented developer, however, in a startup, they won't be able to always work on the exciting stuff due to bandwidth, and you'll need someone who is willing to deign to do some of the not so fun stuff. For example, the more technical of my partners will still pitch in with simple CSS and HTML tweaks when the rest of the team is stretched thin. His willingness to occasionally do BS that he did in his early teens allows us to keep moving forward with happy clients.

3\. Patience and politeness! Your technical co-founder needs to have an attitude that makes them approachable and not intimidating. Staff and yourself need to feel comfortable asking them questions, even dumb ones.

<comment><USER3> The willingness to do work "beneath you" is a fundamental requirement for any founder really in my opinion. Besides the trivial advantages (tedious minor things get done too) it sets an example for the employees.

When I was studying mechanical engineering, I was doing a summer internship in a medium sized industrial plant in southern France. Every now and then, the owner of the company got into a forklift and did warehouse duties himself, just like his workers. This is a very old trick in the book.

<comment><USER2> Oh, most definitely. I think most of my requirements could be extended to just about any founder. I still spend probably 10% of my time making simple text changes in our CMS.

</comment></comment></comment><comment><USER4> I think that your co-founder also has to believe in your idea just as much as you do. Any wishy-washy-ness now will only grow as time goes on.

The list also reminds me of a "what to look for in an employee" article.

<comment><USER5> the important thing to remember here is that any technical person with experience is going to have an initial reaction of suspicion when approached by a business person with some wacky new idea. If you avoid everyone who initially reacts with suspicion, you will be limiting yourself to people who have not been approached by business people before.

That said, I agree that your co-founder and you have to agree the product is worthwhile. I'm just saying; don't expect this enthusiasm right off the bat; that is really only going to happen if your technical co-founder has never listened to a well-pitched bullshit idea.

</comment></comment><comment><USER6> I'll add to the deadline section "the ability to actually ship." Beware of the brilliant computer scientist who is working on their baby, and sees the performance of their software as reflection of their character.

The software will never be "good enough" to release, and "no one will buy it" as it is. They'll run out of money before they actually launch anything.

<comment><USER7> I don't think I can stress this one enough. Not only will a team run out of money with a perfectionist co-founder, but the other obvious result will be that competition may ship a product before you do in what was previously a vapid market.

Should you happen to bring a perfectionist computer scientist on board, implement first (even if it's not DRY) and cleanup/refactor later. Always stress this message. Particularly Ruby programmers. You can remind them that once you ship, they always have the opportunity to clean it up during maintenance nights. You can make it work with a brilliant computer scientist, but always make sure he's focused on shipping rather than perfecting.

<comment><USER8> "Particularly Ruby programmers."

Ruby programmers talk good game. But actual production Ruby code can be pretty messy.

</comment></comment></comment><comment><USER9> Strong experience in a specific language isn't necessary. I know it's anecdotal, but reddit started out being written in Lisp, then switched to Python pretty early on. Many great tech people I know have no problem moving from language to language, or framework to framework.

<comment><USER10> that reminds me of the quote:

       "when all you have is a hammer, everything looks like a nail"

you want your co-founder to choose the best language/tech stack for the job. A c++ developer is fine for a web-app if he's smart and is open to learning new languages.

<comment><USER11> I like that quote.

</comment></comment></comment><comment><USER12> Maybe this is implicit in calling something a "startup" rather than a "side project", but on both sides there needs to be a common agreement on how much time you put into the project, what your vision for the growth of the company is, whether you have other sources of income (and work) at the same time, etc.

The nasty variation on this that I ran into was something that started as a side project where two of us had full-time jobs and one guy did contract work. A couple months later the other guy got laid off and started putting most of his time into the side project, which then evolved into a startup in his mind. Much acrimony followed regarding how much time each person was or should be putting into the project, whether things were "fair", etc.

<comment><USER13> Share your ways to resolve this problem, please. What's happened with your startup/side project?

<comment><USER12> I won't claim to have any solutions, except that in the future I'll be a lot more careful about asking people what their intended time commitment is, and where they want the project to go. I'd also insist on written agreements from the start.

In the case of my project, there was about 6 months of anger, finger-pointing, and general failure to make meaningful progress because all our time was consumed with debates over how the project should operate. Eventually, I realized that the project was a major source of unhappiness in my life and I announced my intention to leave the project. We reached an agreement for the other two to buy out my interest in the project, and they have since made it their full-time job and are attempting to turn it into a real business, working with a local startup incubator.

</comment></comment></comment><comment><AUTHOR> I'm almost certain there are a lot of other smaller points and non general things that could be added. I would love to append the post with comments from here in a day or two.

</comment><comment><USER14> Nice post Jason! Haven't seen you in a while, you used to frequent VLab planning meetings

You may want to add "Getting their point across" to the list too. Communication skill (and negotiation skill) is very important for tech co- founder role. Early on, the business co-founder may be the voice of all decisions made by the company. But, as the company grows, the tech co-founder will need to defend his decisions to board members and outsiders.

<comment><AUTHOR> hey! who is this? I haven't been in the bay area, that's why :).

<comment><USER14> This is Navin. Pretty sure you are the same Jason who helped with the MIT/Stanford VLab Lifestreaming event couple of yrs ago. Ryan Junee and I were leads for the event. I believe you were doing Publictivity back then

</comment></comment></comment><comment><USER15> If you can't afford to pay a potential CTO for their time (rather you are giving them equity), there's a good chance they will need to have a day job. If they can't handle coding during the day and working on your startup at night, you'll run into serious problems. Air out all these issues right at the start.</comment>


Fast enough VMs in fast enough time - <AUTHOR> http://tratt.net/laurie/tech_articles/articles/fast_enough_vms_in_fast_enough_time

<comment><USER2> This is the most interesting thing I've read on hacker news for months. And that's despite its subject matter being way beyond my skill level. I actually understand how a tracing JIT works now.

<comment><USER3> I agree, I learned a lot from this article. I also really appreciated the linked tutorials on writing a Brain Fuck interpreter and JIT compiler in PyPy/RPython: Part 1 [1] and Part [2]. The simplicity of the example and the good writing cleared the topic up for me immensely.

[1] [http://morepypy.blogspot.com/2011/04/tutorial-writing- interp...](http://morepypy.blogspot.com/2011/04/tutorial-writing-interpreter- with-pypy.html)

[2] [http://morepypy.blogspot.com/2011/04/tutorial- part-2-adding-...](http://morepypy.blogspot.com/2011/04/tutorial- part-2-adding-jit.html)

</comment></comment><comment><USER4> > RPython badges itself as a meta-tracing system, meaning that the user's end > program isn't traced directly (which is what Figure 1 suggests), but rather > the interpreter itself is traced.

Isn't that exactly what would happen if you wrote an interpreter in _any_ language with a tracing VM (ie. LuaJIT)? How is writing an interpreter in RPython better than writing one with LuaJIT? RPython makes you insert these hints to the trace compiler (can_enter_jit, jit_merge_point) about when to start/stop running a trace, does this buy you anything? If I had to guess, I'd suspect that this is actually a net loss because you have to guess ahead-of- time where it would make sense to start tracing. This sort of guessing is notoriously hard to do. An implementation like LuaJIT automatically decides when to start tracing based on run-time behavior, which seems like a more robust approach.

The one thing I _do_ find very interesting about RPython is how it subsets a dynamic language such that types can be statically analyzed. I always wondered whether this was possible and what kind of restrictions you'd have to enforce. It's great to see an actual example of this -- it will be very instructive to anyone trying to do a similar thing.

But as far as using RPython as a "meta-tracing system," I'm not seeing what's ground-breaking here. I'd bet 50 cents that writing an interpreter in LuaJIT will be faster than writing it in RPython. And if I'm wrong about that, I'd bet 50 more cents that the reason RPython wins is because it's statically analyzable, _not_ because of anything that's unique about its "meta-tracing system." I'm not sure that term really means anything.

<comment><USER5> > Isn't that exactly what would happen if you wrote an interpreter in any > language with a tracing VM (ie. LuaJIT)?

No. Say you have an interpreter loop written as a switch:

        while(has_bytecodes) {
            bc = next_bytecode()
            switch(bc) {
                case OP_ADD: ...
            }
        }

(Assume for the sake of argument you've got a Lua version and a Python version of the above). In both cases, the loop gets compiled to bytecodes. Before the JIT, you've got two levels of interpretation (call them L0 and L1). The first level of interpretation executes the second level of interpretation, written in Lua or Python bytecode, which interprets your custom bytecode.

When LuaJIT JIT's the process, it will generate native code to replace L0 and directly implement L1. The end result is the same as if you had written your interpreter in C and directly compiled it to native code.

When PyPy JIT's the process, it will use your hints to collapse both levels of interpretation. It will replace both L0 and L1 with native code that implements the bytecode being interpreted.

<comment><USER4> > The end result is the same as if you had written your interpreter in C and > directly compiled it to native code.

I don't think that follows; in the LuaJIT case wouldn't traces of the interpreter span the execution of several (custom) byte-code instructions? Guards would be inserted that effectively ensure that the next byte-code instruction is as expected; the net result would be a trace that indeed corresponds to a region of the interpreted program.

> When PyPy JIT's the process, it will use your hints to collapse both levels > of interpretation. It will replace both L0 and L1 with native code that > implements the bytecode being interpreted.

It's just not clear to me how PyPy is going to do better when the only extra information is has is some hints. They must be powerful hints that help in a way I don't understand if the PyPy approach truly outperforms a run-of-the- mill tracing VM.

<comment><USER5> > I don't think that follows; in the LuaJIT case wouldn't traces of the > interpreter span the execution of several (custom) byte-code instructions? > Guards would be inserted that effectively ensure that the next byte-code > instruction is as expected; the net result would be a trace that indeed > corresponds to a region of the interpreted program.

No, it wouldn't do that. If the tracer worked like that, a simple loop from 0...10,000 would generate a huge trace. A trace doesn't (normally) unroll an inner loop like that. Instead it flattens all the function calls and linearizes all the control flow for a single iteration of the loop.

What happens depends on the interpreter, but the basic gist of the algorithm is:

1) Every time you do a backwards jump, you increment a hotness counter associated with the target of the jump.

2) If a target becomes hot, it's considered a loop header and tracing starts from the header.

3) You keep accumulating the trace until you jump back to the original target; if the trace gets too long before that happens, you abort.

4) You compile the trace to native code, inserting guards to ensure that branches go in the same direction as expected.

5) In the native code, if a guard fails, you can either extend the trace (if you're doing something like trace trees) or abort and fall back to the interpreter.

In the interpreter loop example, the top of the loop will be marked as the loop head. It will start tracing, following the switch down to whatever bytecode happened to appear that time. The bytecode body would be added to the trace, and the interpreter loop would jump back to the loop head. At that point tracing would stop. Native code would be generated that implemented a loop with that one bytecode. When it was executed the guard would fail on other bytecodes, and would be extended (if using trace trees) or the JIT would give up on that loop. In the former case, you'd end up with a native-code version of the interpreter loop. Possibly--because of the deep branching inside the loop, the JIT would most likely just bail on the loop rather than try to come up with a trace for it.

<comment><USER4> Thanks for the helpful clarification/explanation.

</comment></comment></comment></comment></comment><comment><USER6> While I find it good that the article explicitly addresses issues with trace- based compilation (usually this is not the case), a completely fair account needs to present the additional memory requirements for using the PyPy tool chain. Quite recently, somebody here has addressed this by mentioning that he does not really care for all the performance speedup he gets, if the memory requirements become outlandish at the same time.

It would also be _very_ informative to know what the differences in automatic memory management techniques are (i.e., what did the previous implementation do?) Personally, I am also interested in interpreter optimization techniques, and it would therefore be interesting to me what--or if at all--the previous VM used for example threaded code or something along these lines.

<comment><USER7> Yeah: I wish speed.pypy.org also compared memory use. Admittedly, that's more complicated.

<comment><USER8> It does not for a very trivial reason - we lack benchmarks that have some reasonable memory impact. Right now most benchmarks would measure interpreter size, which is slightly boring

<comment><USER6> Hm, I agree about having benchmarks with memory impact is more compelling, but wouldn't it be at least interesting to show the memory impact as it is right now? (i.e., how much more memory does PyPy need?)

</comment></comment></comment></comment><comment><USER9> "What RPython allows one to do is profoundly different to the traditional route. In essence, one writes an interpreter and gets a JIT for free. I suggest rereading that sentence again: it fundamentally changes the economics of language implementation for many of us. To give a rough analogy, it is like moving from manual memory management to automatic garbage collection."

(RPython being the foundation of PyPy.)

</comment><comment><USER10> I'm surprized there's not a PyPy version of Ruby. _why's unholy showed it's trivial to compile Ruby into Python (in many cases). It shouldn't be too hard (famous last words) to make a Ruby VM with PyPy. If they don't like the idea, they could make a RPython <-> RRuby translator, and port the whole thing to RRuby.

Yes, I've heard about Rubinous (the Ruby equivalent to PyPy), but it doesn't have the resources.

<comment><USER11> > _why's unholy showed it's trivial to compile Ruby into Python (in many > cases). It shouldn't be too hard (famous last words) to make a Ruby VM with > PyPy.

Basic structures like if, else, while etc. is easy. The hard part is the object model (including constant lookup) and long jumps (exceptions, next/break). Let's not forget the big core library which you need to implement if you want it to be usable at all…

(Related: I started working on a Ruby version in JavaScript: <https://github.com/judofyr/rubyscript>)

<comment><USER12> > Let's not forget the big core library which you need to implement if you > want it to be usable at all

Wouldn't one just point the translator/compiler to whatever Ruby's equivalent is of /usr/lib/python2.7 and let it be "turtles all the way down"?

<comment><USER11> Core != Stdlib. Core is implemented in C. There are 111 methods just on the String class in core…

</comment></comment></comment></comment><comment><USER13> Squeak Smalltalk bootstrapped itself (back in 1996) by implementing its virtual machine in Slang, a subset of Smalltalk that can essentially be pretty-printed into C.

Back to the future: the story of Squeak, a practical Smalltalk written in itself. <http://www.vpri.org/pdf/tr1997001_backto.pdf>

Its a neat twist that RPython is taking the same engine that optimizes the VM to JIT code that runs on the VM.

</comment><comment><USER14> Very cool article. I have to admit I'm a little frightened of the bulk and complexity of the RPython translation pipeline. I'm not happy about the prospect of waiting an hour to learn my code runs afoul of poorly documented type inference logic. Perhaps when PyPy stabilizes the team can trim back some of the abandoned paths and speed up translate.py?

<comment><USER8> That has two sources - one is the complexity of the python interpreter the other is the complexity of the toolchain itself. Compiling converge takes ~5 minutes, while compiling python interpreter about 30minutes. There is definitely an ongoing effort to make it faster, for example by using the STM to parallelize it to multiple cores.

PS. Type inference errors happen in roughly 1/5th of the compilation time. Not ideal, but better than waiting 30min.</comment></comment>


Why France is building a mega-university at Paris-Saclay to rival Silicon Valley - <AUTHOR> https://theconversation.com/why-france-is-building-a-mega-university-at-paris-saclay-to-rival-silicon-valley-41786

<comment><USER2> _A complex system that works is invariably found to have evolved from a simple system that worked. A complex system designed from scratch never works and cannot be patched up to make it work. You have to start over with a working simple system._ – John Gall

<comment><USER3> Reminds me of Jussieu/UPMC, very large university, quite an architectural and administrative clusterfuck. Too large, unfinished, constant maintenance in progress.

</comment></comment><comment><USER4> This entire article seems to misunderstand what Silicon Valley is, what universities are, and the difference between them. It's rather typical of the French statist approach, where change comes from top-down policy initiatives, rather than from bottom-up civic and economic activity. How bureaucrats does it take to teach a class on entrepreneurship?

French universities, in my personal experience, are deeply underfunded (i.e. we can't afford chairs in all the classrooms), and the French economy is hardly in a position to support this new, vaster agglomeration.

<comment><USER5> > French universities, in my personal experience, are deeply underfunded (i.e. > we can't afford chairs in all the classrooms)

I doubt ParisTech schools such as HEC or Polytechnique have chairs funding issues.

<comment><USER6> HEC and Polytechnique are not universities, they are "Grandes écoles"

</comment></comment></comment><comment><USER7> I feel like Saclay won't rival Silicon Valley any time soon.

To me, part of the magic of silicon valley has little to do with Stanford (although the article references Harvard??) or the mega businesses, but the overall culture of northern california.

For example, would Apple Computer have happened if Steve Jobs had never done LSD? How about BSD? Or many other highly creative and innovative systems.

Maybe it's a coincidence but the European hewing towards authoritarianism thing leaves a bad taste in my mouth.

<comment><USER8> So you're saying this thing would have better results if it were built in Amsterdam :)

<comment><USER7> thc aint nuff, gotta have the psychedelics

</comment></comment></comment><comment><USER9> Can anyone tell me why French institutions are so inept at translating their sites into English. It must be on purpose, a big f-u to non native French speakers.

<comment><USER5> > It must be on purpose, a big f-u to non native French speakers.

I hate this stupid stereotype that French people don't want to learn/use English because they're too proud to do so. I've heard this countless times.

Truth is English isn't an easy language to master for native French speakers. It's similar for Italians or Spaniards for instance. And conversely, nobody expect americans or brits to be fluent in a foreign language.

As for institutions websites, I agree with you it's a shame they don't offer an English version more systematically. I just checked and it seems "impots.gouv.fr" (tax website) doesn't have an English translation (research and educational institutions always have one though).

I don't know why it is not the case. Maybe there's some truth in what you're saying. Some people may think it's not worth the cost since foreigners willing to live and work there should learn the language eventually. I disagree with this type of nationalistic ideology, but again, it's certainly not unique to France.

In any case, I think things are improving. For instance, more and more universities have English curricula nowadays.

<comment><USER10> I'm French. I've lived in France, the UK, Sweden and a bunch of other places in Europe.

English is dead easy to learn; people just don't care, it's in the culture. Nobody can speak English back in france. It's pathetic. Often when I go through Paris' airports, I speak english just to see how badly people still speak it, and just how much effort they'll go through to _still speak french_ despite having someone who has shown no sign of speaking your language in front of you.

For some, it's pride. For most, it's lack of education. For all, it's a sad, sad situation. And the degree to which it happens is _absolutely_ unique to France - I have never seen such dislike of foreign languages in any other country - and my full time job is in localization engineering.

I've been in Stockholm for about a year now and I've had trouble finding swedes that do _not_ speak English. The turkish immigrant at the local pizzeria? Even his English is better than a majority of french people's skills in _any_ foreign language, and he's the worst speaker I've met so far here. On top of fluent Swedish and Turkish.

Greece? Spain? Romania? Even Germany! Most people speak English, and often a third language. This is unique to France and it's not something we can be proud of.

<comment><USER5> > English is dead easy to learn

Maybe it was for you, but its not equally easy to learn for let say Swedes, French and Japanese. I noticed latin languages speakers have a harder time. English accent is very difficult to get right for French.

> Nobody can speak English back in france. It's pathetic.

It's obviously not true. Most people that went through high school at least know the basics. Usually, they lack practice and feel shy and self conscious, but I believe they can sustain a simple conversation if needed.

And all "grandes écoles" students speak at least decent English (I know for teaching in one).

> This is unique to France

Have you been to Italy? my experience is that they're not better than the French as far as english speaking is concerned. Same in Spain.

But seriously, what about Japan? Peru? Brazil? China? There are tons of countries where most people don't speak english at all.

> it's not something we can be proud of.

A lot of time is devoted to teaching English in France. Starting at primary school now. But learning a foreign language is notoriously hard. And things are getting better.

Maybe, what is unique to the French is to think they are so unique at everything :)

</comment></comment></comment></comment><comment><USER11> I'm so fed up with this. I found a gardening analogie to the way our government handles the country development :

Normal people, whenever they want to grow plants, they start by looking at a fertile soil, with good sunny weather, and good water supplies around. Then they throw thousands of seeds all around and see what grows, and take care of it over time.

Now, in france it's different. We bring in 20000 liters of water in containers, buy 3 tons of fertilizers, and put one seed in the ground.

<comment><USER12> The seeds are students or the startups, the water is billions of dollars or euros. That's what you need for Silicon Valley. Seasoned capitalists with money to burn. Government grants can not make up for the shark VCs that know what they are doing, or trying to do.

<comment><USER13> You also need a culture of entrepreneurship that bootlegs itself. The previous generation of companies helping the new generation - this is what is truly unusual about SV.

The more bureaucracy you build in to your culture to try and "facilitate entrepreneurship" the more you undermine this type of culture.

<comment><USER14> French culture is very much reliant upon the centralized government to do/provide everything. You can see it in their attempts at a government- sanctioned google competitor, now a government-sanctioned silicon valley. And it will fail over and over until they change the basic French outlook on jobs. In France it's impossible to fire. Every job requires a ton of red tape. Anything like a 1099 (hire/fire easily) employee is completely foreign to french thinking. To them, companies can only exploit, and employees must be protected by the government. They exhibit deep cynicism of capitalism, which is mutually exclusive with silicon valley. France is an old money country, new opportunities are almost impossible to find. France will never create a silicon valley under these conditions.

<comment><USER12> They also need to allow H1Bs for companies to exploit.

</comment></comment></comment></comment></comment><comment><USER15> Maybe they should watch the PBS special on the founding of Silicon valley.

</comment><comment><USER16> I find the title misleading and unanswered within the body of the story. Also, Silicon Valley is not a university, though there are certainly a few peppered throughout the valley.</comment>


Google Chrome's Manifest V3 Proposal Would Stop Tampermonkey from Working - <AUTHOR> https://9to5google.com/2019/01/29/chrome-manifest-v3-tampermonkey/ <comment> ga-vu Also NoScript</comment>